diff --git a/help.html b/help.html index ae5d60832..d10e5d16e 100644 --- a/help.html +++ b/help.html @@ -1 +1 @@ -Help

Rustdoc help

Back
\ No newline at end of file +Help

Rustdoc help

Back
\ No newline at end of file diff --git a/jf_aead/all.html b/jf_aead/all.html index 85ca8c27d..19ff7ce2a 100644 --- a/jf_aead/all.html +++ b/jf_aead/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Structs

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

List of all items

Structs

\ No newline at end of file diff --git a/jf_aead/index.html b/jf_aead/index.html index 78b1392ee..97b8d79d7 100644 --- a/jf_aead/index.html +++ b/jf_aead/index.html @@ -1,4 +1,4 @@ -jf_aead - Rust

Crate jf_aead

source ·
Expand description

Use crypto_kx to derive shared session secrets and use symmetric AEAD +jf_aead - Rust

Crate jf_aead

source ·
Expand description

Use crypto_kx to derive shared session secrets and use symmetric AEAD (xchacha20poly1305) for authenticated encryption with associated data.

We only provide an ultra-thin wrapper for stable APIs for jellyfish users, independent of RustCrypto’s upstream changes.

diff --git a/jf_aead/struct.AEADError.html b/jf_aead/struct.AEADError.html index e66c87a4a..b6a89ebbc 100644 --- a/jf_aead/struct.AEADError.html +++ b/jf_aead/struct.AEADError.html @@ -1,24 +1,26 @@ -AEADError in jf_aead - Rust

Struct jf_aead::AEADError

source ·
pub struct AEADError;
Expand description

AEAD Error.

-

Trait Implementations§

source§

impl Clone for AEADError

source§

fn clone(&self) -> AEADError

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 AEADError

source§

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

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

impl Display for AEADError

source§

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

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

impl Error for AEADError

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 Hash for AEADError

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 Ord for AEADError

source§

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

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

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for AEADError

source§

fn eq(&self, other: &AEADError) -> 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 PartialOrd for AEADError

source§

fn partial_cmp(&self, other: &AEADError) -> 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 <= -operator. 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 >= -operator. Read more
source§

impl Copy for AEADError

source§

impl Eq for AEADError

source§

impl StructuralPartialEq for AEADError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+AEADError in jf_aead - Rust

Struct jf_aead::AEADError

source ·
pub struct AEADError;
Expand description

AEAD Error.

+

Trait Implementations§

source§

impl Clone for AEADError

source§

fn clone(&self) -> AEADError

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 AEADError

source§

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

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

impl Display for AEADError

source§

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

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

impl Error for AEADError

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 Hash for AEADError

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 Ord for AEADError

source§

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

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

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for AEADError

source§

fn eq(&self, other: &AEADError) -> 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 PartialOrd for AEADError

source§

fn partial_cmp(&self, other: &AEADError) -> 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 <= +operator. 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 >= +operator. Read more
source§

impl Copy for AEADError

source§

impl Eq for AEADError

source§

impl StructuralPartialEq for AEADError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +From<T> for U chooses to do.

+

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_aead/struct.Ciphertext.html b/jf_aead/struct.Ciphertext.html index b0b038f99..97939a703 100644 --- a/jf_aead/struct.Ciphertext.html +++ b/jf_aead/struct.Ciphertext.html @@ -1,47 +1,48 @@ -Ciphertext in jf_aead - Rust

Struct jf_aead::Ciphertext

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

The ciphertext produced by AEAD encryption

-

Trait Implementations§

source§

impl CanonicalDeserialize for Ciphertext

source§

fn deserialize_with_mode<R: Read>( +Ciphertext in jf_aead - Rust

Struct jf_aead::Ciphertext

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

The ciphertext produced by AEAD encryption

+

Trait Implementations§

source§

impl CanonicalDeserialize for Ciphertext

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl CanonicalSerialize for Ciphertext

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl CanonicalSerialize for Ciphertext

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for Ciphertext

source§

fn clone(&self) -> Ciphertext

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 Ciphertext

source§

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

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

impl<'de> Deserialize<'de> for Ciphertext

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 Ciphertext

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 Ciphertext

source§

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

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

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

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

impl Serialize for Ciphertext

source§

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

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

impl Valid for Ciphertext

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl Eq for Ciphertext

source§

impl StructuralPartialEq for Ciphertext

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for Ciphertext

source§

fn clone(&self) -> Ciphertext

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 Ciphertext

source§

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

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

impl<'de> Deserialize<'de> for Ciphertext

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 Ciphertext

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 Ciphertext

source§

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

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

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

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

impl Serialize for Ciphertext

source§

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

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

impl Valid for Ciphertext

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl Eq for Ciphertext

source§

impl StructuralPartialEq for Ciphertext

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file diff --git a/jf_aead/struct.EncKey.html b/jf_aead/struct.EncKey.html index ba6af1024..03e4e57d8 100644 --- a/jf_aead/struct.EncKey.html +++ b/jf_aead/struct.EncKey.html @@ -1,59 +1,60 @@ -EncKey in jf_aead - Rust

Struct jf_aead::EncKey

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

Public/encryption key for AEAD

+EncKey in jf_aead - Rust

Struct jf_aead::EncKey

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

Public/encryption key for AEAD

Implementations§

source§

impl EncKey

source

pub fn encrypt( &self, rng: impl RngCore + CryptoRng, - message: &[u8], - aad: &[u8], -) -> Result<Ciphertext, AEADError>

Encrypt a message with authenticated associated data which is an + message: &[u8], + aad: &[u8], +) -> Result<Ciphertext, AEADError>

Encrypt a message with authenticated associated data which is an optional bytestring which is not encrypted, but is authenticated along with the message. Failure to pass the same AAD that was used during encryption will cause decryption to fail, which is useful if you would like to “bind” the ciphertext to some identifier, like a digital signature key.

-

Trait Implementations§

source§

impl CanonicalDeserialize for EncKey

Trait Implementations§

source§

impl CanonicalDeserialize for EncKey

source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl CanonicalSerialize for EncKey

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl CanonicalSerialize for EncKey

source§

fn serialize_with_mode<W: Write>( &self, writer: W, _compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for EncKey

source§

fn clone(&self) -> EncKey

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 EncKey

source§

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

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

impl Default for EncKey

source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for EncKey

source§

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

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

impl From<[u8; 32]> for EncKey

source§

fn from(bytes: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<EncKey> for [u8; 32]

source§

fn from(enc_key: EncKey) -> Self

Converts to this type from the input type.
source§

impl Hash for EncKey

source§

fn hash<__H>(&self, __state: &mut __H)
where - __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 - H: Hasher, - Self: Sized,

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

impl PartialEq for EncKey

source§

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

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

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

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

impl Serialize for EncKey

source§

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

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

impl Valid for EncKey

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl Eq for EncKey

Auto Trait Implementations§

§

impl Freeze for EncKey

§

impl RefUnwindSafe for EncKey

§

impl Send for EncKey

§

impl Sync for EncKey

§

impl Unpin for EncKey

§

impl UnwindSafe for EncKey

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for EncKey

source§

fn clone(&self) -> EncKey

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 EncKey

source§

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

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

impl Default for EncKey

source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for EncKey

source§

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

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

impl From<[u8; 32]> for EncKey

source§

fn from(bytes: [u8; 32]) -> Self

Converts to this type from the input type.
source§

impl From<EncKey> for [u8; 32]

source§

fn from(enc_key: EncKey) -> Self

Converts to this type from the input type.
source§

impl Hash for EncKey

source§

fn hash<__H>(&self, __state: &mut __H)
where + __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 + H: Hasher, + Self: Sized,

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

impl PartialEq for EncKey

source§

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

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

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

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

impl Serialize for EncKey

source§

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

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

impl Valid for EncKey

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl Eq for EncKey

Auto Trait Implementations§

§

impl Freeze for EncKey

§

impl RefUnwindSafe for EncKey

§

impl Send for EncKey

§

impl Sync for EncKey

§

impl Unpin for EncKey

§

impl UnwindSafe for EncKey

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file diff --git a/jf_aead/struct.KeyPair.html b/jf_aead/struct.KeyPair.html index 89292e1b9..14d644175 100644 --- a/jf_aead/struct.KeyPair.html +++ b/jf_aead/struct.KeyPair.html @@ -1,55 +1,56 @@ -KeyPair in jf_aead - Rust

Struct jf_aead::KeyPair

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

Keypair for Authenticated Encryption with Associated Data

-

Implementations§

source§

impl KeyPair

source

pub fn generate<R: RngCore + CryptoRng>(rng: &mut R) -> Self

Randomly sample a key pair.

+KeyPair in jf_aead - Rust

Struct jf_aead::KeyPair

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

Keypair for Authenticated Encryption with Associated Data

+

Implementations§

source§

impl KeyPair

source

pub fn generate<R: RngCore + CryptoRng>(rng: &mut R) -> Self

Randomly sample a key pair.

source

pub fn enc_key(&self) -> EncKey

Getter for the public/encryption key

source

pub fn enc_key_ref(&self) -> &EncKey

Getter for reference to the public/encryption key

source

pub fn decrypt( &self, ciphertext: &Ciphertext, - aad: &[u8], -) -> Result<Vec<u8>, AEADError>

Decrypt a ciphertext with authenticated associated data provided. + aad: &[u8], +) -> Result<Vec<u8>, AEADError>

Decrypt a ciphertext with authenticated associated data provided. If the associated data is different that that used during encryption, then decryption will fail.

-

Trait Implementations§

source§

impl CanonicalDeserialize for KeyPair

Trait Implementations§

source§

impl CanonicalDeserialize for KeyPair

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl CanonicalSerialize for KeyPair

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl CanonicalSerialize for KeyPair

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for KeyPair

source§

fn clone(&self) -> KeyPair

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 KeyPair

source§

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

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

impl Default for KeyPair

source§

fn default() -> KeyPair

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

impl<'de> Deserialize<'de> for KeyPair

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 KeyPair

source§

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

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

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

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

impl Serialize for KeyPair

source§

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

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

impl Valid for KeyPair

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

Auto Trait Implementations§

§

impl Freeze for KeyPair

§

impl RefUnwindSafe for KeyPair

§

impl Send for KeyPair

§

impl Sync for KeyPair

§

impl Unpin for KeyPair

§

impl UnwindSafe for KeyPair

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for KeyPair

source§

fn clone(&self) -> KeyPair

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 KeyPair

source§

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

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

impl Default for KeyPair

source§

fn default() -> KeyPair

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

impl<'de> Deserialize<'de> for KeyPair

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 KeyPair

source§

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

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

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

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

impl Serialize for KeyPair

source§

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

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

impl Valid for KeyPair

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

Auto Trait Implementations§

§

impl Freeze for KeyPair

§

impl RefUnwindSafe for KeyPair

§

impl Send for KeyPair

§

impl Sync for KeyPair

§

impl Unpin for KeyPair

§

impl UnwindSafe for KeyPair

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file +From<T> for U chooses to do.

+
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

\ No newline at end of file diff --git a/jf_commitment/all.html b/jf_commitment/all.html index 6e66e7462..914720947 100644 --- a/jf_commitment/all.html +++ b/jf_commitment/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Traits

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

List of all items

Traits

\ No newline at end of file diff --git a/jf_commitment/index.html b/jf_commitment/index.html index d7a979e9d..7f14ee25b 100644 --- a/jf_commitment/index.html +++ b/jf_commitment/index.html @@ -1,2 +1,2 @@ -jf_commitment - Rust

Crate jf_commitment

source ·
Expand description

Trait definition for cryptographic commitment scheme

+jf_commitment - Rust

Crate jf_commitment

source ·
Expand description

Trait definition for cryptographic commitment scheme

Traits§

\ No newline at end of file diff --git a/jf_commitment/trait.CommitmentScheme.html b/jf_commitment/trait.CommitmentScheme.html index bc5cbc7bf..ea7e9cdd1 100644 --- a/jf_commitment/trait.CommitmentScheme.html +++ b/jf_commitment/trait.CommitmentScheme.html @@ -1,31 +1,31 @@ -CommitmentScheme in jf_commitment - Rust

Trait jf_commitment::CommitmentScheme

source ·
pub trait CommitmentScheme {
+CommitmentScheme in jf_commitment - Rust

Trait jf_commitment::CommitmentScheme

source ·
pub trait CommitmentScheme {
     type Input;
-    type Output: Clone + Debug + PartialEq + Eq + Hash;
-    type Randomness: Clone + Debug + PartialEq + Eq + UniformRand;
-    type Error: Error;
+    type Output: Clone + Debug + PartialEq + Eq + Hash;
+    type Randomness: Clone + Debug + PartialEq + Eq + UniformRand;
+    type Error: Error;
 
     // Required methods
-    fn commit<T: Borrow<Self::Input>>(
+    fn commit<T: Borrow<Self::Input>>(
         input: T,
-        r: Option<&Self::Randomness>,
-    ) -> Result<Self::Output, Self::Error>;
-    fn verify<T: Borrow<Self::Input>>(
+        r: Option<&Self::Randomness>,
+    ) -> Result<Self::Output, Self::Error>;
+    fn verify<T: Borrow<Self::Input>>(
         input: T,
-        r: Option<&Self::Randomness>,
+        r: Option<&Self::Randomness>,
         comm: &Self::Output,
-    ) -> Result<Result<(), ()>, Self::Error>;
+    ) -> Result<Result<(), ()>, Self::Error>;
 }

Required Associated Types§

source

type Input

Input to the commitment

-
source

type Output: Clone + Debug + PartialEq + Eq + Hash

The type of output commitment value

-
source

type Randomness: Clone + Debug + PartialEq + Eq + UniformRand

The type of the hiding/blinding factor

-
source

type Error: Error

Error type

-

Required Methods§

source

fn commit<T: Borrow<Self::Input>>( +

source

type Output: Clone + Debug + PartialEq + Eq + Hash

The type of output commitment value

+
source

type Randomness: Clone + Debug + PartialEq + Eq + UniformRand

The type of the hiding/blinding factor

+
source

type Error: Error

Error type

+

Required Methods§

source

fn commit<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, -) -> Result<Self::Output, Self::Error>

Commit algorithm that takes input and blinding randomness r + r: Option<&Self::Randomness>, +) -> Result<Self::Output, Self::Error>

Commit algorithm that takes input and blinding randomness r (optional for hiding commitment schemes), outputs a commitment.

-
source

fn verify<T: Borrow<Self::Input>>( +

source

fn verify<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, + r: Option<&Self::Randomness>, comm: &Self::Output, -) -> Result<Result<(), ()>, Self::Error>

Verify algorithm that output Ok if accepted, or Err if rejected.

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +) -> Result<Result<(), ()>, Self::Error>

Verify algorithm that output Ok if accepted, or Err if rejected.

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/jf_crhf/all.html b/jf_crhf/all.html index b41913121..a84a68e4a 100644 --- a/jf_crhf/all.html +++ b/jf_crhf/all.html @@ -1 +1 @@ -List of all items in this crate

List of all items

Traits

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

List of all items

Traits

\ No newline at end of file diff --git a/jf_crhf/index.html b/jf_crhf/index.html index 2664c1e62..ba6147e1b 100644 --- a/jf_crhf/index.html +++ b/jf_crhf/index.html @@ -1,4 +1,4 @@ -jf_crhf - Rust

Crate jf_crhf

source ·
Expand description

Trait definition for Collision-resistant hash function (CRHF).

+jf_crhf - Rust

Crate jf_crhf

source ·
Expand description

Trait definition for Collision-resistant hash function (CRHF).

Traits§

  • A trait for CRHF (based on ark-primitives’ definition, but self-declared for minimal dependency and easier future upgradability.)
\ No newline at end of file diff --git a/jf_crhf/trait.CRHF.html b/jf_crhf/trait.CRHF.html index e6312e714..eb6f0a0ae 100644 --- a/jf_crhf/trait.CRHF.html +++ b/jf_crhf/trait.CRHF.html @@ -1,19 +1,19 @@ -CRHF in jf_crhf - Rust

Trait jf_crhf::CRHF

source ·
pub trait CRHF {
+CRHF in jf_crhf - Rust

Trait jf_crhf::CRHF

source ·
pub trait CRHF {
     type Input;
-    type Output: Clone + PartialEq + Eq + Hash + Debug + CanonicalSerialize + CanonicalDeserialize;
-    type Error: Error;
+    type Output: Clone + PartialEq + Eq + Hash + Debug + CanonicalSerialize + CanonicalDeserialize;
+    type Error: Error;
 
     // Required method
-    fn evaluate<T: Borrow<Self::Input>>(
+    fn evaluate<T: Borrow<Self::Input>>(
         input: T,
-    ) -> Result<Self::Output, Self::Error>;
+    ) -> Result<Self::Output, Self::Error>;
 }
Expand description

A trait for CRHF (based on ark-primitives’ definition, but self-declared for minimal dependency and easier future upgradability.)

Required Associated Types§

source

type Input

Input to the CRHF

-
source

type Output: Clone + PartialEq + Eq + Hash + Debug + CanonicalSerialize + CanonicalDeserialize

Output of the CRHF

-
source

type Error: Error

Error type

-

Required Methods§

source

fn evaluate<T: Borrow<Self::Input>>( +

source

type Output: Clone + PartialEq + Eq + Hash + Debug + CanonicalSerialize + CanonicalDeserialize

Output of the CRHF

+
source

type Error: Error

Error type

+

Required Methods§

source

fn evaluate<T: Borrow<Self::Input>>( input: T, -) -> Result<Self::Output, Self::Error>

evaluate inputs and return hash output

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +) -> Result<Self::Output, Self::Error>

evaluate inputs and return hash output

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/jf_elgamal/all.html b/jf_elgamal/all.html index c23253341..db9d15b70 100644 --- a/jf_elgamal/all.html +++ b/jf_elgamal/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/jf_elgamal/index.html b/jf_elgamal/index.html index 172ef0a9f..9af726903 100644 --- a/jf_elgamal/index.html +++ b/jf_elgamal/index.html @@ -1,2 +1,2 @@ -jf_elgamal - Rust

Crate jf_elgamal

source ·
Expand description

Implements the ElGamal encryption scheme.

+jf_elgamal - Rust

Crate jf_elgamal

source ·
Expand description

Implements the ElGamal encryption scheme.

Structs§

\ No newline at end of file diff --git a/jf_elgamal/struct.Ciphertext.html b/jf_elgamal/struct.Ciphertext.html index 7c26b1a34..b8da53e45 100644 --- a/jf_elgamal/struct.Ciphertext.html +++ b/jf_elgamal/struct.Ciphertext.html @@ -1,80 +1,81 @@ -Ciphertext in jf_elgamal - Rust

Struct jf_elgamal::Ciphertext

source ·
pub struct Ciphertext<P>
where +Ciphertext in jf_elgamal - Rust

Struct jf_elgamal::Ciphertext

source ·
pub struct Ciphertext<P>
where P: Config,
{ /* private fields */ }
Expand description

Public encryption cipher text

Implementations§

source§

impl<P> Ciphertext<P>
where - P: Config,

source

pub fn to_scalars(&self) -> Vec<P::BaseField>

Flatten out the ciphertext into a vector of scalars

-
source

pub fn from_scalars(scalars: &[P::BaseField]) -> Result<Self, ParameterError>

Reconstruct the ciphertext from a list of scalars.

+ P: Config,
source

pub fn to_scalars(&self) -> Vec<P::BaseField>

Flatten out the ciphertext into a vector of scalars

+
source

pub fn from_scalars(scalars: &[P::BaseField]) -> Result<Self, ParameterError>

Reconstruct the ciphertext from a list of scalars.

Trait Implementations§

source§

impl<P> CanonicalDeserialize for Ciphertext<P>
where - P: Config,

source§

fn deserialize_with_mode<R: Read>( + P: Config,

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<P> CanonicalSerialize for Ciphertext<P>
where - P: Config,

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<P> CanonicalSerialize for Ciphertext<P>
where + P: Config,

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for Ciphertext<P>
where - P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for Ciphertext<P>
where - P: Config,

source§

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

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

impl<P> Hash for Ciphertext<P>
where - P: Config,

source§

fn hash<__HP>(&self, __state: &mut __HP)
where - __HP: Hasher,

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<P> PartialEq for Ciphertext<P>
where - P: Config,

source§

fn eq(&self, other: &Self) -> 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 +) -> Result<(), SerializationError>
The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for Ciphertext<P>
where + P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for Ciphertext<P>
where + P: Config,

source§

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

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

impl<P> Hash for Ciphertext<P>
where + P: Config,

source§

fn hash<__HP>(&self, __state: &mut __HP)
where + __HP: Hasher,

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<P> PartialEq for Ciphertext<P>
where + P: Config,

source§

fn eq(&self, other: &Self) -> 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<P> Valid for Ciphertext<P>
where - P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<P> Eq for Ciphertext<P>
where - P: Config,

Auto Trait Implementations§

§

impl<P> Freeze for Ciphertext<P>
where - <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for Ciphertext<P>
where - <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for Ciphertext<P>

§

impl<P> Sync for Ciphertext<P>

§

impl<P> Unpin for Ciphertext<P>
where - <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for Ciphertext<P>
where - <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<P> Eq for Ciphertext<P>
where + P: Config,

Auto Trait Implementations§

§

impl<P> Freeze for Ciphertext<P>
where + <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for Ciphertext<P>
where + <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for Ciphertext<P>

§

impl<P> Sync for Ciphertext<P>

§

impl<P> Unpin for Ciphertext<P>
where + <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for Ciphertext<P>
where + <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_elgamal/struct.EncKey.html b/jf_elgamal/struct.EncKey.html index 7410d55cd..bde736a61 100644 --- a/jf_elgamal/struct.EncKey.html +++ b/jf_elgamal/struct.EncKey.html @@ -1,11 +1,11 @@ -EncKey in jf_elgamal - Rust

Struct jf_elgamal::EncKey

source ·
pub struct EncKey<P>
where +EncKey in jf_elgamal - Rust

Struct jf_elgamal::EncKey

source ·
pub struct EncKey<P>
where P: Config,
{ /* private fields */ }
Expand description

Encryption key for encryption scheme

Implementations§

source§

impl<F, P> EncKey<P>
where F: RescueParameter, P: Config<BaseField = F>,

source

pub fn deterministic_encrypt( &self, r: P::ScalarField, - msg: &[F], + msg: &[F], ) -> Ciphertext<P>

Public key encryption function with pre-sampled randomness

  • r - randomness
  • @@ -14,84 +14,85 @@
source

pub fn encrypt<R: CryptoRng + RngCore>( &self, - prng: &mut R, + prng: &mut R, msg: &[P::BaseField], ) -> Ciphertext<P>

Public key encryption function

Trait Implementations§

source§

impl<P> CanonicalDeserialize for EncKey<P>
where - P: Config,

source§

fn deserialize_with_mode<R: Read>( + P: Config,

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<P> CanonicalSerialize for EncKey<P>
where - P: Config,

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<P> CanonicalSerialize for EncKey<P>
where + P: Config,

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for EncKey<P>
where - P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for EncKey<P>
where - P: Config,

source§

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

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

impl<P> Default for EncKey<P>
where - P: Config,

source§

fn default() -> Self

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

impl<P> From<&EncKey<P>> for (P::BaseField, P::BaseField)
where - P: Config,

source§

fn from(pk: &EncKey<P>) -> Self

Converts to this type from the input type.
source§

impl<P: Config> Hash for EncKey<P>

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<P: Config> PartialEq for EncKey<P>

source§

fn eq(&self, other: &Self) -> 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 +) -> Result<(), SerializationError>
The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for EncKey<P>
where + P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for EncKey<P>
where + P: Config,

source§

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

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

impl<P> Default for EncKey<P>
where + P: Config,

source§

fn default() -> Self

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

impl<P> From<&EncKey<P>> for (P::BaseField, P::BaseField)
where + P: Config,

source§

fn from(pk: &EncKey<P>) -> Self

Converts to this type from the input type.
source§

impl<P: Config> Hash for EncKey<P>

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<P: Config> PartialEq for EncKey<P>

source§

fn eq(&self, other: &Self) -> 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<P: Config> UniformRand for EncKey<P>

Sample a random public key with unknown associated secret key

-
source§

fn rand<R>(rng: &mut R) -> Self
where - R: Rng + RngCore + ?Sized,

source§

impl<P> Valid for EncKey<P>
where - P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where +
source§

fn rand<R>(rng: &mut R) -> Self
where + R: Rng + RngCore + ?Sized,

source§

impl<P> Valid for EncKey<P>
where + P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where Self: 'a,

source§

impl<P> Zeroize for EncKey<P>
where P: Config,

source§

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the -zeroization operation is not “optimized away” by the compiler.
source§

impl<P> Eq for EncKey<P>
where - P: Config,

Auto Trait Implementations§

§

impl<P> Freeze for EncKey<P>
where - <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for EncKey<P>
where - <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for EncKey<P>

§

impl<P> Sync for EncKey<P>

§

impl<P> Unpin for EncKey<P>
where - <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for EncKey<P>
where - <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +zeroization operation is not “optimized away” by the compiler.

source§

impl<P> Eq for EncKey<P>
where + P: Config,

Auto Trait Implementations§

§

impl<P> Freeze for EncKey<P>
where + <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for EncKey<P>
where + <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for EncKey<P>

§

impl<P> Sync for EncKey<P>

§

impl<P> Unpin for EncKey<P>
where + <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for EncKey<P>
where + <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_elgamal/struct.KeyPair.html b/jf_elgamal/struct.KeyPair.html index 19151254a..d57e9642a 100644 --- a/jf_elgamal/struct.KeyPair.html +++ b/jf_elgamal/struct.KeyPair.html @@ -1,79 +1,80 @@ -KeyPair in jf_elgamal - Rust

Struct jf_elgamal::KeyPair

source ·
pub struct KeyPair<P>
where +KeyPair in jf_elgamal - Rust

Struct jf_elgamal::KeyPair

source ·
pub struct KeyPair<P>
where P: Config,
{ /* private fields */ }
Expand description

KeyPair structure for encryption scheme

Implementations§

source§

impl<P> KeyPair<P>
where - P: Config,

source

pub fn generate<R: CryptoRng + RngCore>(rng: &mut R) -> KeyPair<P>

Key generation algorithm for public key encryption scheme

+ P: Config,
source

pub fn generate<R: CryptoRng + RngCore>(rng: &mut R) -> KeyPair<P>

Key generation algorithm for public key encryption scheme

source

pub fn enc_key(&self) -> EncKey<P>

Get encryption key

source

pub fn enc_key_ref(&self) -> &EncKey<P>

Get encryption key reference

source§

impl<F, P> KeyPair<P>
where F: RescueParameter, - P: Config<BaseField = F>,

source

pub fn decrypt(&self, ctext: &Ciphertext<P>) -> Vec<F>

Decryption function

+ P: Config<BaseField = F>,
source

pub fn decrypt(&self, ctext: &Ciphertext<P>) -> Vec<F>

Decryption function

Trait Implementations§

source§

impl<P> CanonicalDeserialize for KeyPair<P>
where - P: Config,

source§

fn deserialize_with_mode<R: Read>( + P: Config,

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<P> CanonicalSerialize for KeyPair<P>
where - P: Config,

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<P> CanonicalSerialize for KeyPair<P>
where + P: Config,

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for KeyPair<P>
where - P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for KeyPair<P>
where - P: Config,

source§

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

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

impl<P> PartialEq for KeyPair<P>
where - P: Config,

source§

fn eq(&self, other: &Self) -> 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 +) -> Result<(), SerializationError>
The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<P> Clone for KeyPair<P>
where + P: Config,

source§

fn clone(&self) -> Self

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<P> Debug for KeyPair<P>
where + P: Config,

source§

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

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

impl<P> PartialEq for KeyPair<P>
where + P: Config,

source§

fn eq(&self, other: &Self) -> 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<P> Valid for KeyPair<P>
where - P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

Auto Trait Implementations§

§

impl<P> Freeze for KeyPair<P>
where - <P as CurveConfig>::ScalarField: Freeze, - <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for KeyPair<P>
where - <P as CurveConfig>::ScalarField: RefUnwindSafe, - <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for KeyPair<P>

§

impl<P> Sync for KeyPair<P>

§

impl<P> Unpin for KeyPair<P>
where - <P as CurveConfig>::ScalarField: Unpin, - <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for KeyPair<P>
where - <P as CurveConfig>::ScalarField: UnwindSafe, - <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + P: Config,

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

Auto Trait Implementations§

§

impl<P> Freeze for KeyPair<P>
where + <P as CurveConfig>::ScalarField: Freeze, + <P as CurveConfig>::BaseField: Freeze,

§

impl<P> RefUnwindSafe for KeyPair<P>
where + <P as CurveConfig>::ScalarField: RefUnwindSafe, + <P as CurveConfig>::BaseField: RefUnwindSafe,

§

impl<P> Send for KeyPair<P>

§

impl<P> Sync for KeyPair<P>

§

impl<P> Unpin for KeyPair<P>
where + <P as CurveConfig>::ScalarField: Unpin, + <P as CurveConfig>::BaseField: Unpin,

§

impl<P> UnwindSafe for KeyPair<P>
where + <P as CurveConfig>::ScalarField: UnwindSafe, + <P as CurveConfig>::BaseField: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_elgamal/struct.ParameterError.html b/jf_elgamal/struct.ParameterError.html index c0aa04f5c..516838dc4 100644 --- a/jf_elgamal/struct.ParameterError.html +++ b/jf_elgamal/struct.ParameterError.html @@ -1,28 +1,28 @@ -ParameterError in jf_elgamal - Rust

Struct jf_elgamal::ParameterError

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

Parameter error: {0}

-

Trait Implementations§

source§

impl Debug for ParameterError

source§

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

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

impl Display for ParameterError

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +ParameterError in jf_elgamal - Rust

Struct jf_elgamal::ParameterError

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

Parameter error: {0}

+

Trait Implementations§

source§

impl Debug for ParameterError

source§

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

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

impl Display for ParameterError

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_merkle_tree/all.html b/jf_merkle_tree/all.html index e4158310c..6ee00dca6 100644 --- a/jf_merkle_tree/all.html +++ b/jf_merkle_tree/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/jf_merkle_tree/append_only/index.html b/jf_merkle_tree/append_only/index.html index 514def6f8..e1184d406 100644 --- a/jf_merkle_tree/append_only/index.html +++ b/jf_merkle_tree/append_only/index.html @@ -1,2 +1,2 @@ -jf_merkle_tree::append_only - Rust

Module jf_merkle_tree::append_only

source ·
Expand description

Implementation of a typical append only merkle tree

+jf_merkle_tree::append_only - Rust

Module jf_merkle_tree::append_only

source ·
Expand description

Implementation of a typical append only merkle tree

Structs§

  • A standard append only Merkle tree implementation
\ No newline at end of file diff --git a/jf_merkle_tree/append_only/struct.MerkleTree.html b/jf_merkle_tree/append_only/struct.MerkleTree.html index 542ab4407..7c1cc3c0d 100644 --- a/jf_merkle_tree/append_only/struct.MerkleTree.html +++ b/jf_merkle_tree/append_only/struct.MerkleTree.html @@ -1,159 +1,160 @@ -MerkleTree in jf_merkle_tree::append_only - Rust

Struct jf_merkle_tree::append_only::MerkleTree

source ·
pub struct MerkleTree<E, H, I, const ARITY: usize, T>
where +MerkleTree in jf_merkle_tree::append_only - Rust

Struct jf_merkle_tree::append_only::MerkleTree

source ·
pub struct MerkleTree<E, H, I, const ARITY: usize, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, T: NodeValue,
{ /* private fields */ }
Expand description

A standard append only Merkle tree implementation

-

Implementations§

source§

impl<E, H, I, const ARITY: usize, T> MerkleTree<E, H, I, ARITY, T>
where +

Implementations§

source§

impl<E, H, I, const ARITY: usize, T> MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, - T: NodeValue,

source

pub fn new(height: usize) -> Self

Initialize an empty Merkle tree.

-
source§

impl<E, H, const ARITY: usize, T> MerkleTree<E, H, u64, ARITY, T>
where + T: NodeValue,

source

pub fn new(height: usize) -> Self

Initialize an empty Merkle tree.

+
source§

impl<E, H, const ARITY: usize, T> MerkleTree<E, H, u64, ARITY, T>
where E: Element, - H: DigestAlgorithm<E, u64, T>, + H: DigestAlgorithm<E, u64, T>, T: NodeValue,

source

pub fn from_elems( - height: Option<usize>, - elems: impl IntoIterator<Item = impl Borrow<E>>, -) -> Result<Self, MerkleTreeError>

Construct a new Merkle tree with given height from a data slice

+ height: Option<usize>, + elems: impl IntoIterator<Item = impl Borrow<E>>, +) -> Result<Self, MerkleTreeError>

Construct a new Merkle tree with given height from a data slice

  • height - height of the Merkle tree, if None, it will calculate the minimum height that could hold all elements.
  • elems - an iterator to all elements
  • returns - A constructed Merkle tree, or Err() if errors
-

Trait Implementations§

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
where +

Trait Implementations§

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
where E: Element, - H: DigestAlgorithm<E, u64, T>, + H: DigestAlgorithm<E, u64, T>, T: NodeValue,

source§

fn push( &mut self, - elem: impl Borrow<Self::Element>, -) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

fn extend( + elem: impl Borrow<Self::Element>, +) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

fn extend( &mut self, - elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, -) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
where - E: Element + Clone, - H: DigestAlgorithm<E, I, T> + Clone, - I: Index + Clone, - T: NodeValue + Clone,

source§

fn clone(&self) -> MerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
where - E: Element + Debug, - H: DigestAlgorithm<E, I, T> + Debug, - I: Index + Debug, - T: NodeValue + Debug,

source§

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

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

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
where + elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, +) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
where + E: Element + Clone, + H: DigestAlgorithm<E, I, T> + Clone, + I: Index + Clone, + T: NodeValue + Clone,

source§

fn clone(&self) -> MerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
where + E: Element + Debug, + H: DigestAlgorithm<E, I, T> + Debug, + I: Index + Debug, + T: NodeValue + Debug,

source§

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

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

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. + T: NodeValue,
source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. Return a tree which is entirely forgotten.
source§

fn forget( &mut self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<Self::Element, Self::MembershipProof, ()>

Trim the leaf at position i from memory, if present. + pos: impl Borrow<Self::Index>, +) -> LookupResult<Self::Element, Self::MembershipProof, ()>
Trim the leaf at position i from memory, if present. Should not trim if position i is the last inserted leaf position. Return is identical to result if get_leaf(pos) were called before this call.
source§

fn remember( &mut self, - pos: impl Borrow<Self::Index>, - element: impl Borrow<Self::Element>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” a leaf into the tree using its proof. + pos: impl Borrow<Self::Index>, + element: impl Borrow<Self::Element>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<(), MerkleTreeError>
“Re-insert” a leaf into the tree using its proof. Returns Ok(()) if insertion is successful, or Err(err) if the -proof disagrees with the merkle tree
source§

impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
where - E: Element + Hash, - H: DigestAlgorithm<E, I, T> + Hash, - I: Index + Hash, - T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a MerkleTree<E, H, I, ARITY, T>
where +proof disagrees with the merkle tree

source§

impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
where + E: Element + Hash, + H: DigestAlgorithm<E, I, T> + Hash, + I: Index + Hash, + T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( + T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( &self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( - root: impl Borrow<Self::NodeValue>, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not -forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
where - E: Element + PartialEq, - H: DigestAlgorithm<E, I, T> + PartialEq, - I: Index + PartialEq, - T: NodeValue + PartialEq,

source§

fn eq(&self, other: &MerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
where + pos: impl Borrow<Self::Index>, +) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( + root: impl Borrow<Self::NodeValue>, + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not +forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
where + E: Element + PartialEq, + H: DigestAlgorithm<E, I, T> + PartialEq, + I: Index + PartialEq, + T: NodeValue + PartialEq,

source§

fn eq(&self, other: &MerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

source§

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

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

impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
where - E: Element + Eq, - H: DigestAlgorithm<E, I, T> + Eq, - I: Index + Eq, - T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

source§

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

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

impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
where + E: Element + Eq, + H: DigestAlgorithm<E, I, T> + Eq, + I: Index + Eq, + T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, - T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for MerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for MerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for MerkleTree<E, H, I, ARITY, T>
where - H: Send, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for MerkleTree<E, H, I, ARITY, T>
where - H: Sync, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for MerkleTree<E, H, I, ARITY, T>
where - H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for MerkleTree<E, H, I, ARITY, T>
where - H: UnwindSafe, - T: RefUnwindSafe, - I: RefUnwindSafe, - E: RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for MerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for MerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for MerkleTree<E, H, I, ARITY, T>
where + H: Send, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for MerkleTree<E, H, I, ARITY, T>
where + H: Sync, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for MerkleTree<E, H, I, ARITY, T>
where + H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for MerkleTree<E, H, I, ARITY, T>
where + H: UnwindSafe, + T: RefUnwindSafe, + I: RefUnwindSafe, + E: RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

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

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_merkle_tree/enum.LookupResult.html b/jf_merkle_tree/enum.LookupResult.html index 2387eae62..cbf50aef7 100644 --- a/jf_merkle_tree/enum.LookupResult.html +++ b/jf_merkle_tree/enum.LookupResult.html @@ -1,4 +1,4 @@ -LookupResult in jf_merkle_tree - Rust

Enum jf_merkle_tree::LookupResult

source ·
pub enum LookupResult<F, P, N> {
+LookupResult in jf_merkle_tree - Rust

Enum jf_merkle_tree::LookupResult

source ·
pub enum LookupResult<F, P, N> {
     Ok(F, P),
     NotInMemory,
     NotFound(N),
@@ -9,62 +9,64 @@
 
§

NotInMemory

The index is valid but we do not have the leaf in memory

§

NotFound(N)

The index is outside the occupied range in the tree, and a non-membership proof

-

Implementations§

source§

impl<F, P, N> LookupResult<F, P, N>

source

pub fn expect_ok(self) -> Result<(F, P), MerkleTreeError>

Assert the lookup result is Ok. Return a tuple of element and membership +

Implementations§

source§

impl<F, P, N> LookupResult<F, P, N>

source

pub fn expect_ok(self) -> Result<(F, P), MerkleTreeError>

Assert the lookup result is Ok. Return a tuple of element and membership proof.

-
source

pub fn expect_not_found(self) -> Result<N, MerkleTreeError>

Assert the lookup result is NotFound. Return a non-membership proof.

-
source

pub fn expect_not_in_memory(self) -> Result<(), MerkleTreeError>

Assert the lookup result is NotInMemory.

-

Trait Implementations§

source§

impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>

source§

fn clone(&self) -> LookupResult<F, P, N>

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<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>

source§

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

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

impl<F: Hash, P: Hash, N: Hash> Hash for LookupResult<F, P, N>

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<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>

source§

fn eq(&self, other: &LookupResult<F, P, N>) -> 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<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>

source§

impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>

source§

impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>

Auto Trait Implementations§

§

impl<F, P, N> Freeze for LookupResult<F, P, N>
where - F: Freeze, - P: Freeze, - N: Freeze,

§

impl<F, P, N> RefUnwindSafe for LookupResult<F, P, N>
where - F: RefUnwindSafe, - P: RefUnwindSafe, - N: RefUnwindSafe,

§

impl<F, P, N> Send for LookupResult<F, P, N>
where - F: Send, - P: Send, - N: Send,

§

impl<F, P, N> Sync for LookupResult<F, P, N>
where - F: Sync, - P: Sync, - N: Sync,

§

impl<F, P, N> Unpin for LookupResult<F, P, N>
where - F: Unpin, - P: Unpin, - N: Unpin,

§

impl<F, P, N> UnwindSafe for LookupResult<F, P, N>
where - F: UnwindSafe, - P: UnwindSafe, - N: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +
source

pub fn expect_not_found(self) -> Result<N, MerkleTreeError>

Assert the lookup result is NotFound. Return a non-membership proof.

+
source

pub fn expect_not_in_memory(self) -> Result<(), MerkleTreeError>

Assert the lookup result is NotInMemory.

+

Trait Implementations§

source§

impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>

source§

fn clone(&self) -> LookupResult<F, P, N>

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<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>

source§

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

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

impl<F: Hash, P: Hash, N: Hash> Hash for LookupResult<F, P, N>

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<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>

source§

fn eq(&self, other: &LookupResult<F, P, N>) -> 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<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>

source§

impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>

source§

impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>

Auto Trait Implementations§

§

impl<F, P, N> Freeze for LookupResult<F, P, N>
where + F: Freeze, + P: Freeze, + N: Freeze,

§

impl<F, P, N> RefUnwindSafe for LookupResult<F, P, N>
where + F: RefUnwindSafe, + P: RefUnwindSafe, + N: RefUnwindSafe,

§

impl<F, P, N> Send for LookupResult<F, P, N>
where + F: Send, + P: Send, + N: Send,

§

impl<F, P, N> Sync for LookupResult<F, P, N>
where + F: Sync, + P: Sync, + N: Sync,

§

impl<F, P, N> Unpin for LookupResult<F, P, N>
where + F: Unpin, + P: Unpin, + N: Unpin,

§

impl<F, P, N> UnwindSafe for LookupResult<F, P, N>
where + F: UnwindSafe, + P: UnwindSafe, + N: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file + T: Clone + Eq + PartialEq + Hash, \ No newline at end of file diff --git a/jf_merkle_tree/errors/enum.MerkleTreeError.html b/jf_merkle_tree/errors/enum.MerkleTreeError.html index 44be4027d..e921c92b6 100644 --- a/jf_merkle_tree/errors/enum.MerkleTreeError.html +++ b/jf_merkle_tree/errors/enum.MerkleTreeError.html @@ -1,52 +1,52 @@ -MerkleTreeError in jf_merkle_tree::errors - Rust

Enum jf_merkle_tree::errors::MerkleTreeError

source ·
pub enum MerkleTreeError {
-    ParametersError(String),
+MerkleTreeError in jf_merkle_tree::errors - Rust

Enum jf_merkle_tree::errors::MerkleTreeError

source ·
pub enum MerkleTreeError {
+    ParametersError(String),
     NotFound,
     ExistingLeaf,
     ForgottenLeaf,
     ExceedCapacity,
-    DigestError(String),
-    InconsistentStructureError(String),
+    DigestError(String),
+    InconsistentStructureError(String),
 }
Expand description

Error type for Merkle tree

-

Variants§

§

ParametersError(String)

Parameters error, {0}

+

Variants§

§

ParametersError(String)

Parameters error, {0}

§

NotFound

Queried leaf isn’t in this Merkle tree

§

ExistingLeaf

Queried leaf is already occupied.

§

ForgottenLeaf

Queried leaf is forgotten.

§

ExceedCapacity

Merkle tree is already full.

-
§

DigestError(String)

Digest error, {0}

-
§

InconsistentStructureError(String)

Inconsistent Structure error, {0}

-

Trait Implementations§

source§

impl Debug for MerkleTreeError

source§

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

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

impl Display for MerkleTreeError

source§

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

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

impl Error for MerkleTreeError

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<RescueError> for MerkleTreeError

source§

fn from(err: RescueError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for MerkleTreeError

source§

fn eq(&self, other: &MerkleTreeError) -> 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 MerkleTreeError

source§

impl StructuralPartialEq for MerkleTreeError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where - T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method +
§

DigestError(String)

Digest error, {0}

+
§

InconsistentStructureError(String)

Inconsistent Structure error, {0}

+

Trait Implementations§

source§

impl Debug for MerkleTreeError

source§

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

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

impl Display for MerkleTreeError

source§

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

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

impl Error for MerkleTreeError

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<RescueError> for MerkleTreeError

source§

fn from(err: RescueError) -> Self

Converts to this type from the input type.
source§

impl PartialEq for MerkleTreeError

source§

fn eq(&self, other: &MerkleTreeError) -> 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 MerkleTreeError

source§

impl StructuralPartialEq for MerkleTreeError

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where + T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +receivers.
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ 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 Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

source§

default fn to_string(&self) -> String

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_merkle_tree/errors/index.html b/jf_merkle_tree/errors/index.html index edee0521d..cb58f812c 100644 --- a/jf_merkle_tree/errors/index.html +++ b/jf_merkle_tree/errors/index.html @@ -1,2 +1,2 @@ -jf_merkle_tree::errors - Rust

Module jf_merkle_tree::errors

source ·
Expand description

Error types

+jf_merkle_tree::errors - Rust

Module jf_merkle_tree::errors

source ·
Expand description

Error types

Enums§

\ No newline at end of file diff --git a/jf_merkle_tree/examples/index.html b/jf_merkle_tree/examples/index.html index 515a1e1fa..677de5466 100644 --- a/jf_merkle_tree/examples/index.html +++ b/jf_merkle_tree/examples/index.html @@ -1,4 +1,4 @@ -jf_merkle_tree::examples - Rust

Module jf_merkle_tree::examples

source ·
Expand description

Provides sample instantiations of merkle tree. +jf_merkle_tree::examples - Rust

Module jf_merkle_tree::examples

source ·
Expand description

Provides sample instantiations of merkle tree. E.g. Sparse merkle tree with BigUInt index.

Structs§

  • Element type for interval merkle tree

Type Aliases§

  • Interval merkle tree instantiation for interval merkle tree using Rescue hash function.
\ No newline at end of file diff --git a/jf_merkle_tree/examples/struct.Interval.html b/jf_merkle_tree/examples/struct.Interval.html index be11d3b39..1063409a8 100644 --- a/jf_merkle_tree/examples/struct.Interval.html +++ b/jf_merkle_tree/examples/struct.Interval.html @@ -1,42 +1,44 @@ -Interval in jf_merkle_tree::examples - Rust

Struct jf_merkle_tree::examples::Interval

source ·
pub struct Interval<F: Field>(pub F, pub F);
Expand description

Element type for interval merkle tree

-

Tuple Fields§

§0: F§1: F

Trait Implementations§

source§

impl<F: Clone + Field> Clone for Interval<F>

source§

fn clone(&self) -> Interval<F>

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<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: Hash + Field> Hash for Interval<F>

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<F: PartialEq + Field> PartialEq for Interval<F>

source§

fn eq(&self, other: &Interval<F>) -> 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<F: Copy + Field> Copy for Interval<F>

source§

impl<F: Eq + Field> Eq for Interval<F>

source§

impl<F: Field> StructuralPartialEq for Interval<F>

Auto Trait Implementations§

§

impl<F> Freeze for Interval<F>
where - F: Freeze,

§

impl<F> RefUnwindSafe for Interval<F>
where - F: RefUnwindSafe,

§

impl<F> Send for Interval<F>

§

impl<F> Sync for Interval<F>

§

impl<F> Unpin for Interval<F>
where - F: Unpin,

§

impl<F> UnwindSafe for Interval<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +Interval in jf_merkle_tree::examples - Rust

Struct jf_merkle_tree::examples::Interval

source ·
pub struct Interval<F: Field>(pub F, pub F);
Expand description

Element type for interval merkle tree

+

Tuple Fields§

§0: F§1: F

Trait Implementations§

source§

impl<F: Clone + Field> Clone for Interval<F>

source§

fn clone(&self) -> Interval<F>

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<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: Hash + Field> Hash for Interval<F>

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<F: PartialEq + Field> PartialEq for Interval<F>

source§

fn eq(&self, other: &Interval<F>) -> 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<F: Copy + Field> Copy for Interval<F>

source§

impl<F: Eq + Field> Eq for Interval<F>

source§

impl<F: Field> StructuralPartialEq for Interval<F>

Auto Trait Implementations§

§

impl<F> Freeze for Interval<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for Interval<F>
where + F: RefUnwindSafe,

§

impl<F> Send for Interval<F>

§

impl<F> Sync for Interval<F>

§

impl<F> Unpin for Interval<F>
where + F: Unpin,

§

impl<F> UnwindSafe for Interval<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

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

§

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

§

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

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

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

§

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

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

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

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

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file + T: Clone + Eq + PartialEq + Hash, \ No newline at end of file diff --git a/jf_merkle_tree/examples/type.IntervalMerkleTree.html b/jf_merkle_tree/examples/type.IntervalMerkleTree.html index bfe7c8208..71c5dc86e 100644 --- a/jf_merkle_tree/examples/type.IntervalMerkleTree.html +++ b/jf_merkle_tree/examples/type.IntervalMerkleTree.html @@ -1,3 +1,3 @@ -IntervalMerkleTree in jf_merkle_tree::examples - Rust

Type Alias jf_merkle_tree::examples::IntervalMerkleTree

source ·
pub type IntervalMerkleTree<F> = MerkleTree<Interval<F>, RescueHash<F>, u64, 3, F>;
Expand description

Interval merkle tree instantiation for interval merkle tree using Rescue +IntervalMerkleTree in jf_merkle_tree::examples - Rust

Type Alias jf_merkle_tree::examples::IntervalMerkleTree

source ·
pub type IntervalMerkleTree<F> = MerkleTree<Interval<F>, RescueHash<F>, u64, 3, F>;
Expand description

Interval merkle tree instantiation for interval merkle tree using Rescue hash function.

Aliased Type§

struct IntervalMerkleTree<F> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/hasher/index.html b/jf_merkle_tree/hasher/index.html index 4ec7e787c..98f776ca3 100644 --- a/jf_merkle_tree/hasher/index.html +++ b/jf_merkle_tree/hasher/index.html @@ -1,4 +1,4 @@ -jf_merkle_tree::hasher - Rust

Module jf_merkle_tree::hasher

source ·
Expand description

A convenience wrapper HasherMerkleTree to instantiate MerkleTree for any RustCrypto-compatible hash function.

+jf_merkle_tree::hasher - Rust

Module jf_merkle_tree::hasher

source ·
Expand description

A convenience wrapper HasherMerkleTree to instantiate MerkleTree for any RustCrypto-compatible hash function.

use jf_merkle_tree::{hasher::HasherMerkleTree, AppendableMerkleTreeScheme, MerkleCommitment, MerkleTreeScheme};
 use sha2::Sha256;
diff --git a/jf_merkle_tree/hasher/struct.HasherDigestAlgorithm.html b/jf_merkle_tree/hasher/struct.HasherDigestAlgorithm.html
index 9fb6ce2a3..bd9c3b2c6 100644
--- a/jf_merkle_tree/hasher/struct.HasherDigestAlgorithm.html
+++ b/jf_merkle_tree/hasher/struct.HasherDigestAlgorithm.html
@@ -1,30 +1,30 @@
-HasherDigestAlgorithm in jf_merkle_tree::hasher - Rust

Struct jf_merkle_tree::hasher::HasherDigestAlgorithm

source ·
pub struct HasherDigestAlgorithm;
Expand description

A struct that impls DigestAlgorithm for use with MerkleTree.

+HasherDigestAlgorithm in jf_merkle_tree::hasher - Rust

Struct jf_merkle_tree::hasher::HasherDigestAlgorithm

source ·
pub struct HasherDigestAlgorithm;
Expand description

A struct that impls DigestAlgorithm for use with MerkleTree.

Trait Implementations§

source§

impl<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where E: Element + CanonicalSerialize, I: Index + CanonicalSerialize, - H: HasherDigest,

source§

fn digest(data: &[HasherNode<H>]) -> Result<HasherNode<H>, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &E) -> Result<HasherNode<H>, MerkleTreeError>

Digest an indexed element

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + H: HasherDigest,
source§

fn digest(data: &[HasherNode<H>]) -> Result<HasherNode<H>, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &E) -> Result<HasherNode<H>, MerkleTreeError>

Digest an indexed element

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

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

§

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

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

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

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

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

§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

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

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

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

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
§

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

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_merkle_tree/hasher/struct.HasherNode.html b/jf_merkle_tree/hasher/struct.HasherNode.html index ddaabc538..9508f9824 100644 --- a/jf_merkle_tree/hasher/struct.HasherNode.html +++ b/jf_merkle_tree/hasher/struct.HasherNode.html @@ -1,111 +1,113 @@ -HasherNode in jf_merkle_tree::hasher - Rust

Struct jf_merkle_tree::hasher::HasherNode

source ·
pub struct HasherNode<H>(/* private fields */)
+HasherNode in jf_merkle_tree::hasher - Rust

Struct jf_merkle_tree::hasher::HasherNode

source ·
pub struct HasherNode<H>(/* private fields */)
 where
     H: Digest;
Expand description

Newtype wrapper for hash output that impls NodeValue.

-

Trait Implementations§

source§

impl<H> AsRef<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
where +

Trait Implementations§

source§

impl<H> AsRef<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
where H: Digest,

Allow access to the underlying [Output]

-
source§

fn as_ref(&self) -> &Output<H>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<H> CanonicalDeserialize for HasherNode<H>
where - H: Digest,

source§

fn as_ref(&self) -> &Output<H>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<H> CanonicalDeserialize for HasherNode<H>
where + H: Digest,

source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<H> CanonicalSerialize for HasherNode<H>
where - H: Digest,

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<H> CanonicalSerialize for HasherNode<H>
where + H: Digest,

source§

fn serialize_with_mode<W: Write>( &self, writer: W, _compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<H> Clone for HasherNode<H>
where - H: Digest,

source§

fn clone(&self) -> Self

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<H> Debug for HasherNode<H>
where - H: Digest,

source§

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

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

impl<H> Default for HasherNode<H>
where - H: Digest,

source§

fn default() -> Self

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

impl<'de, H> Deserialize<'de> for HasherNode<H>
where - H: Digest,

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<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<H> Clone for HasherNode<H>
where + H: Digest,

source§

fn clone(&self) -> Self

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<H> Debug for HasherNode<H>
where + H: Digest,

source§

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

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

impl<H> Default for HasherNode<H>
where + H: Digest,

source§

fn default() -> Self

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

impl<'de, H> Deserialize<'de> for HasherNode<H>
where + H: Digest,

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<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where E: Element + CanonicalSerialize, I: Index + CanonicalSerialize, - H: HasherDigest,

source§

fn digest(data: &[HasherNode<H>]) -> Result<HasherNode<H>, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &E) -> Result<HasherNode<H>, MerkleTreeError>

Digest an indexed element
source§

impl<H> Display for HasherNode<H>
where - H: Digest,

source§

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

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

impl<H> From<&HasherNode<H>> for TaggedBase64
where - H: Digest,

source§

fn from(x: &HasherNode<H>) -> Self

Converts to this type from the input type.
source§

impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
where + H: HasherDigest,

source§

fn digest(data: &[HasherNode<H>]) -> Result<HasherNode<H>, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &E) -> Result<HasherNode<H>, MerkleTreeError>

Digest an indexed element
source§

impl<H> Display for HasherNode<H>
where + H: Digest,

source§

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

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

impl<H> From<&HasherNode<H>> for TaggedBase64
where + H: Digest,

source§

fn from(x: &HasherNode<H>) -> Self

Converts to this type from the input type.
source§

impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
where H: Digest,

Allow creation from [Output]

-
source§

fn from(value: Output<H>) -> Self

Converts to this type from the input type.
source§

impl<H> From<HasherNode<H>> for TaggedBase64
where - H: Digest,

source§

fn from(x: HasherNode<H>) -> Self

Converts to this type from the input type.
source§

impl<H> FromStr for HasherNode<H>
where - H: Digest,

§

type Err = Tb64Error

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

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

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

impl<H> Hash for HasherNode<H>
where - H: Digest,

source§

fn hash<__HH>(&self, __state: &mut __HH)
where - __HH: Hasher,

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<H> Ord for HasherNode<H>
where - H: Digest,

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<H> PartialEq for HasherNode<H>
where - H: Digest,

source§

fn eq(&self, other: &Self) -> 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<H> PartialOrd for HasherNode<H>
where - H: Digest,

source§

fn partial_cmp(&self, other: &Self) -> 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 <= -operator. 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 >= -operator. Read more
source§

impl<H> Serialize for HasherNode<H>
where - H: Digest,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<H> Tagged for HasherNode<H>
where - H: Digest,

source§

impl<H> TryFrom<&TaggedBase64> for HasherNode<H>
where - H: Digest,

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: &TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<H> TryFrom<TaggedBase64> for HasherNode<H>
where - H: Digest,

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<H> Valid for HasherNode<H>
where - H: Digest,

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<H> Copy for HasherNode<H>
where +
source§

fn from(value: Output<H>) -> Self

Converts to this type from the input type.
source§

impl<H> From<HasherNode<H>> for TaggedBase64
where + H: Digest,

source§

fn from(x: HasherNode<H>) -> Self

Converts to this type from the input type.
source§

impl<H> FromStr for HasherNode<H>
where + H: Digest,

§

type Err = Tb64Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<H> Hash for HasherNode<H>
where + H: Digest,

source§

fn hash<__HH>(&self, __state: &mut __HH)
where + __HH: Hasher,

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<H> Ord for HasherNode<H>
where + H: Digest,

source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl<H> PartialEq for HasherNode<H>
where + H: Digest,

source§

fn eq(&self, other: &Self) -> 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<H> PartialOrd for HasherNode<H>
where + H: Digest,

source§

fn partial_cmp(&self, other: &Self) -> 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 <= +operator. 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 >= +operator. Read more
source§

impl<H> Serialize for HasherNode<H>
where + H: Digest,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<H> Tagged for HasherNode<H>
where + H: Digest,

source§

impl<H> TryFrom<&TaggedBase64> for HasherNode<H>
where + H: Digest,

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: &TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<H> TryFrom<TaggedBase64> for HasherNode<H>
where + H: Digest,

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<H> Valid for HasherNode<H>
where + H: Digest,

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<H> Copy for HasherNode<H>
where H: Digest, - <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,

source§

impl<H> Eq for HasherNode<H>
where - H: Digest,

Auto Trait Implementations§

§

impl<H> Freeze for HasherNode<H>
where - <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Freeze,

§

impl<H> RefUnwindSafe for HasherNode<H>
where - <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,

§

impl<H> Send for HasherNode<H>

§

impl<H> Sync for HasherNode<H>

§

impl<H> Unpin for HasherNode<H>
where - <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Unpin,

§

impl<H> UnwindSafe for HasherNode<H>
where - <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,

source§

impl<H> Eq for HasherNode<H>
where + H: Digest,

Auto Trait Implementations§

§

impl<H> Freeze for HasherNode<H>
where + <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Freeze,

§

impl<H> RefUnwindSafe for HasherNode<H>
where + <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,

§

impl<H> Send for HasherNode<H>

§

impl<H> Sync for HasherNode<H>

§

impl<H> Unpin for HasherNode<H>
where + <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Unpin,

§

impl<H> UnwindSafe for HasherNode<H>
where + <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

source§

impl<T> Index for T
where - T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

source§

impl<T> NodeValue for T
where - T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

source§

impl<T> Index for T
where + T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

source§

impl<T> NodeValue for T
where + T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file diff --git a/jf_merkle_tree/hasher/trait.HasherDigest.html b/jf_merkle_tree/hasher/trait.HasherDigest.html index 2bc951970..6265f97b7 100644 --- a/jf_merkle_tree/hasher/trait.HasherDigest.html +++ b/jf_merkle_tree/hasher/trait.HasherDigest.html @@ -1,6 +1,6 @@ -HasherDigest in jf_merkle_tree::hasher - Rust

Trait jf_merkle_tree::hasher::HasherDigest

source ·
pub trait HasherDigest: Digest<OutputSize = Self::Foo> + Write + Send + Sync {
-    type Foo: ArrayLength<u8, ArrayType = Self::Bar>;
-    type Bar: Copy;
+HasherDigest in jf_merkle_tree::hasher - Rust

Trait jf_merkle_tree::hasher::HasherDigest

source ·
pub trait HasherDigest: Digest<OutputSize = Self::Foo> + Write + Send + Sync {
+    type Foo: ArrayLength<u8, ArrayType = Self::Bar>;
+    type Bar: Copy;
 }
Expand description

Convenience trait and blanket impl for downstream trait bounds.

Useful for downstream code that’s generic offer [Digest] hasher H.

§Example

@@ -23,7 +23,7 @@

§Example

let my_data = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let mt = HasherMerkleTree::<H, usize>::from_elems(None, &my_data).unwrap(); }
-

Note that the complex trait bound for Copy is necessary:

+

Note that the complex trait bound for Copy is necessary:

fn generic_over_hasher<H>()
 where
@@ -32,8 +32,8 @@ 

§Example

let my_data = [1, 2, 3, 4, 5, 6, 7, 8, 9]; let mt = HasherMerkleTree::<H, usize>::from_elems(None, &my_data).unwrap(); }
-

Required Associated Types§

source

type Foo: ArrayLength<u8, ArrayType = Self::Bar>

Associated type needed to express trait bounds.

-
source

type Bar: Copy

Associated type needed to express trait bounds.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> HasherDigest for T
where - T: Digest + Write + Send + Sync, - <T::OutputSize as ArrayLength<u8>>::ArrayType: Copy,

§

type Foo = <T as OutputSizeUser>::OutputSize

§

type Bar = <<T as HasherDigest>::Foo as ArrayLength<u8>>::ArrayType

\ No newline at end of file +

Required Associated Types§

source

type Foo: ArrayLength<u8, ArrayType = Self::Bar>

Associated type needed to express trait bounds.

+
source

type Bar: Copy

Associated type needed to express trait bounds.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> HasherDigest for T
where + T: Digest + Write + Send + Sync, + <T::OutputSize as ArrayLength<u8>>::ArrayType: Copy,

§

type Foo = <T as OutputSizeUser>::OutputSize

§

type Bar = <<T as HasherDigest>::Foo as ArrayLength<u8>>::ArrayType

\ No newline at end of file diff --git a/jf_merkle_tree/hasher/type.GenericHasherMerkleTree.html b/jf_merkle_tree/hasher/type.GenericHasherMerkleTree.html index 6160c0297..641d13f3a 100644 --- a/jf_merkle_tree/hasher/type.GenericHasherMerkleTree.html +++ b/jf_merkle_tree/hasher/type.GenericHasherMerkleTree.html @@ -1,9 +1,9 @@ -GenericHasherMerkleTree in jf_merkle_tree::hasher - Rust

Type Alias jf_merkle_tree::hasher::GenericHasherMerkleTree

source ·
pub type GenericHasherMerkleTree<H, E, I, const ARITY: usize> = MerkleTree<E, HasherDigestAlgorithm, I, ARITY, HasherNode<H>>;
Expand description

Like HasherMerkleTree except with additional parameters.

+GenericHasherMerkleTree in jf_merkle_tree::hasher - Rust

Type Alias jf_merkle_tree::hasher::GenericHasherMerkleTree

source ·
pub type GenericHasherMerkleTree<H, E, I, const ARITY: usize> = MerkleTree<E, HasherDigestAlgorithm, I, ARITY, HasherNode<H>>;
Expand description

Like HasherMerkleTree except with additional parameters.

Additional parameters beyond HasherMerkleTree:

    -
  • I is a Index data type that impls From<u64>. (eg. u64, +
  • I is a Index data type that impls From<u64>. (eg. u64, Field, etc.)
  • ARITY is a const generic. (eg. 2 for a binary tree, 3 for a trinary tree, etc.)
-

Aliased Type§

struct GenericHasherMerkleTree<H, E, I, const ARITY: usize> { /* private fields */ }
\ No newline at end of file +

Aliased Type§

struct GenericHasherMerkleTree<H, E, I, const ARITY: usize> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/hasher/type.HasherMerkleTree.html b/jf_merkle_tree/hasher/type.HasherMerkleTree.html index 8efeb4603..e768cca8f 100644 --- a/jf_merkle_tree/hasher/type.HasherMerkleTree.html +++ b/jf_merkle_tree/hasher/type.HasherMerkleTree.html @@ -1,5 +1,5 @@ -HasherMerkleTree in jf_merkle_tree::hasher - Rust

Type Alias jf_merkle_tree::hasher::HasherMerkleTree

source ·
pub type HasherMerkleTree<H, E> = GenericHasherMerkleTree<H, E, u64, 3>;
Expand description

Merkle tree generic over [Digest] hasher H.

-

It’s a trinary tree whose nodes are indexed by u64.

+HasherMerkleTree in jf_merkle_tree::hasher - Rust

Type Alias jf_merkle_tree::hasher::HasherMerkleTree

source ·
pub type HasherMerkleTree<H, E> = GenericHasherMerkleTree<H, E, u64, 3>;
Expand description

Merkle tree generic over [Digest] hasher H.

+

It’s a trinary tree whose nodes are indexed by u64.

Trait Implementations§

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for LightWeightMerkleTree<E, H, u64, ARITY, T>
where E: Element, - H: DigestAlgorithm<E, u64, T>, + H: DigestAlgorithm<E, u64, T>, T: NodeValue,

source§

fn push( &mut self, - elem: impl Borrow<Self::Element>, -) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

fn extend( + elem: impl Borrow<Self::Element>, +) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

fn extend( &mut self, - elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, -) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
where - E: Element + Clone, - H: DigestAlgorithm<E, I, T> + Clone, - I: Index + Clone, - T: NodeValue + Clone,

source§

fn clone(&self) -> LightWeightMerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
where - E: Element + Debug, - H: DigestAlgorithm<E, I, T> + Debug, - I: Index + Debug, - T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
where + elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, +) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
where + E: Element + Clone, + H: DigestAlgorithm<E, I, T> + Clone, + I: Index + Clone, + T: NodeValue + Clone,

source§

fn clone(&self) -> LightWeightMerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
where + E: Element + Debug, + H: DigestAlgorithm<E, I, T> + Debug, + I: Index + Debug, + T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. + T: NodeValue,
source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. Return a tree which is entirely forgotten.
source§

fn forget( &mut self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<Self::Element, Self::MembershipProof, ()>

Trim the leaf at position i from memory, if present. + pos: impl Borrow<Self::Index>, +) -> LookupResult<Self::Element, Self::MembershipProof, ()>
Trim the leaf at position i from memory, if present. Should not trim if position i is the last inserted leaf position. Return is identical to result if get_leaf(pos) were called before this call.
source§

fn remember( &mut self, - pos: impl Borrow<Self::Index>, - element: impl Borrow<Self::Element>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” a leaf into the tree using its proof. + pos: impl Borrow<Self::Index>, + element: impl Borrow<Self::Element>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<(), MerkleTreeError>
“Re-insert” a leaf into the tree using its proof. Returns Ok(()) if insertion is successful, or Err(err) if the -proof disagrees with the merkle tree
source§

impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
where - E: Element + Hash, - H: DigestAlgorithm<E, I, T> + Hash, - I: Index + Hash, - T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a LightWeightMerkleTree<E, H, I, ARITY, T>
where +proof disagrees with the merkle tree

source§

impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
where + E: Element + Hash, + H: DigestAlgorithm<E, I, T> + Hash, + I: Index + Hash, + T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( + T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( &self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( - root: impl Borrow<Self::NodeValue>, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not -forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
where - E: Element + PartialEq, - H: DigestAlgorithm<E, I, T> + PartialEq, - I: Index + PartialEq, - T: NodeValue + PartialEq,

source§

fn eq(&self, other: &LightWeightMerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
where + pos: impl Borrow<Self::Index>, +) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( + root: impl Borrow<Self::NodeValue>, + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not +forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
where + E: Element + PartialEq, + H: DigestAlgorithm<E, I, T> + PartialEq, + I: Index + PartialEq, + T: NodeValue + PartialEq,

source§

fn eq(&self, other: &LightWeightMerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
where - E: Element + Eq, - H: DigestAlgorithm<E, I, T> + Eq, - I: Index + Eq, - T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
where + E: Element + Eq, + H: DigestAlgorithm<E, I, T> + Eq, + I: Index + Eq, + T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, - T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for LightWeightMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for LightWeightMerkleTree<E, H, I, ARITY, T>
where - H: Send, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for LightWeightMerkleTree<E, H, I, ARITY, T>
where - H: Sync, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for LightWeightMerkleTree<E, H, I, ARITY, T>
where - H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>
where - H: UnwindSafe, - T: RefUnwindSafe, - I: RefUnwindSafe, - E: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for LightWeightMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for LightWeightMerkleTree<E, H, I, ARITY, T>
where + H: Send, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for LightWeightMerkleTree<E, H, I, ARITY, T>
where + H: Sync, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for LightWeightMerkleTree<E, H, I, ARITY, T>
where + H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>
where + H: UnwindSafe, + T: RefUnwindSafe, + I: RefUnwindSafe, + E: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_merkle_tree/macro.impl_forgetable_merkle_tree_scheme.html b/jf_merkle_tree/macro.impl_forgetable_merkle_tree_scheme.html index 78acca1df..9ab6f3665 100644 --- a/jf_merkle_tree/macro.impl_forgetable_merkle_tree_scheme.html +++ b/jf_merkle_tree/macro.impl_forgetable_merkle_tree_scheme.html @@ -1,4 +1,4 @@ -impl_forgetable_merkle_tree_scheme in jf_merkle_tree - Rust
macro_rules! impl_forgetable_merkle_tree_scheme {
+impl_forgetable_merkle_tree_scheme in jf_merkle_tree - Rust
macro_rules! impl_forgetable_merkle_tree_scheme {
     ($name: ident) => { ... };
 }
Expand description

Macro for generating a forgetable merkle tree implementation

\ No newline at end of file diff --git a/jf_merkle_tree/macro.impl_merkle_tree_scheme.html b/jf_merkle_tree/macro.impl_merkle_tree_scheme.html index 16eaacc34..28b54dffc 100644 --- a/jf_merkle_tree/macro.impl_merkle_tree_scheme.html +++ b/jf_merkle_tree/macro.impl_merkle_tree_scheme.html @@ -1,4 +1,4 @@ -impl_merkle_tree_scheme in jf_merkle_tree - Rust

Macro jf_merkle_tree::impl_merkle_tree_scheme

source ·
macro_rules! impl_merkle_tree_scheme {
+impl_merkle_tree_scheme in jf_merkle_tree - Rust

Macro jf_merkle_tree::impl_merkle_tree_scheme

source ·
macro_rules! impl_merkle_tree_scheme {
     ($name: ident) => { ... };
 }
Expand description

Macro for generating a standard merkle tree implementation

\ No newline at end of file diff --git a/jf_merkle_tree/macro.impl_to_traversal_path_biguint.html b/jf_merkle_tree/macro.impl_to_traversal_path_biguint.html index 136f587e8..855d89828 100644 --- a/jf_merkle_tree/macro.impl_to_traversal_path_biguint.html +++ b/jf_merkle_tree/macro.impl_to_traversal_path_biguint.html @@ -1,4 +1,4 @@ -impl_to_traversal_path_biguint in jf_merkle_tree - Rust
macro_rules! impl_to_traversal_path_biguint {
+impl_to_traversal_path_biguint in jf_merkle_tree - Rust
macro_rules! impl_to_traversal_path_biguint {
     ($t: ty) => { ... };
 }
Expand description

Macros for implementing ToTreversalPath for BigUint types

\ No newline at end of file diff --git a/jf_merkle_tree/macro.impl_to_traversal_path_primitives.html b/jf_merkle_tree/macro.impl_to_traversal_path_primitives.html index 0259cc0c9..daf99d336 100644 --- a/jf_merkle_tree/macro.impl_to_traversal_path_primitives.html +++ b/jf_merkle_tree/macro.impl_to_traversal_path_primitives.html @@ -1,4 +1,4 @@ -impl_to_traversal_path_primitives in jf_merkle_tree - Rust
macro_rules! impl_to_traversal_path_primitives {
+impl_to_traversal_path_primitives in jf_merkle_tree - Rust
macro_rules! impl_to_traversal_path_primitives {
     ($t: ty) => { ... };
 }
Expand description

Macros for implementing ToTreversalPath for primitive types

\ No newline at end of file diff --git a/jf_merkle_tree/macros/index.html b/jf_merkle_tree/macros/index.html index a7bbdee6b..1a6e45cf4 100644 --- a/jf_merkle_tree/macros/index.html +++ b/jf_merkle_tree/macros/index.html @@ -1,2 +1,2 @@ -jf_merkle_tree::macros - Rust

Module jf_merkle_tree::macros

source ·
Expand description

Useful macros

+jf_merkle_tree::macros - Rust

Module jf_merkle_tree::macros

source ·
Expand description

Useful macros

\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/index.html b/jf_merkle_tree/namespaced_merkle_tree/index.html index aded21b01..c25b36366 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/index.html +++ b/jf_merkle_tree/namespaced_merkle_tree/index.html @@ -1,4 +1,4 @@ -jf_merkle_tree::namespaced_merkle_tree - Rust

Module jf_merkle_tree::namespaced_merkle_tree

source ·
Expand description

Implementation of a Namespaced Merkle Tree.

+jf_merkle_tree::namespaced_merkle_tree - Rust

Module jf_merkle_tree::namespaced_merkle_tree

source ·
Expand description

Implementation of a Namespaced Merkle Tree.

Structs§

Traits§

  • Trait indicating that a digest algorithm can commit to a namespace range.
  • Trait indicating that a struct can act as an orderable namespace
  • Completeness proof for a namespace
  • Trait indicating that a leaf has a namespace.
  • Namespaced Merkle Tree where leaves are sorted by a namespace identifier. The data structure supports namespace inclusion proofs.
\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/struct.NMT.html b/jf_merkle_tree/namespaced_merkle_tree/struct.NMT.html index b4ad9e6af..9921b5471 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/struct.NMT.html +++ b/jf_merkle_tree/namespaced_merkle_tree/struct.NMT.html @@ -1,67 +1,67 @@ -NMT in jf_merkle_tree::namespaced_merkle_tree - Rust

Struct jf_merkle_tree::namespaced_merkle_tree::NMT

source ·
pub struct NMT<E, H, const ARITY: usize, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, +NMT in jf_merkle_tree::namespaced_merkle_tree - Rust

Struct jf_merkle_tree::namespaced_merkle_tree::NMT

source ·
pub struct NMT<E, H, const ARITY: usize, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, N: Namespace,
{ /* private fields */ }
Expand description

NMT

-

Implementations§

source§

impl<E, H, const ARITY: usize, N, T> NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, +

Implementations§

source§

impl<E, H, const ARITY: usize, N, T> NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

source

pub fn new(height: usize) -> Self

Initializze an empty NMT

+ N: Namespace,
source

pub fn new(height: usize) -> Self

Initializze an empty NMT

source

pub fn from_elems( - height: Option<usize>, - elems: impl IntoIterator<Item = impl Borrow<E>>, -) -> Result<Self, MerkleTreeError>

Construct an NMT from elements.

-
source§

impl<E, H, const ARITY: usize, N, T> NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + height: Option<usize>, + elems: impl IntoIterator<Item = impl Borrow<E>>, +) -> Result<Self, MerkleTreeError>

Construct an NMT from elements.

+
source§

impl<E, H, const ARITY: usize, N, T> NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

source

pub fn leaves(&self) -> impl ExactSizeIterator<Item = &E> + '_

Helper function to return an iterator over the leaves in the tree

-

Trait Implementations§

source§

impl<E, H, const ARITY: usize, N, T> AppendableMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + N: Namespace,

source

pub fn leaves(&self) -> impl ExactSizeIterator<Item = &E> + '_

Helper function to return an iterator over the leaves in the tree

+

Trait Implementations§

source§

impl<E, H, const ARITY: usize, N, T> AppendableMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, N: Namespace,

source§

fn extend( &mut self, - elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, -) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

fn push( + elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, +) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots Read more
source§

fn push( &mut self, - elem: impl Borrow<Self::Element>, -) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, - E: Element + Namespaced<Namespace = N> + Clone, - T: NodeValue + Clone, - N: Namespace + Clone,

source§

fn clone(&self) -> NMT<E, H, ARITY, N, T>

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<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug, - E: Element + Namespaced<Namespace = N> + Debug, - T: NodeValue + Debug, - N: Namespace + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, const ARITY: usize, N, T> Deserialize<'de> for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + elem: impl Borrow<Self::Element>, +) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot Read more
source§

impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, + E: Element + Namespaced<Namespace = N> + Clone, + T: NodeValue + Clone, + N: Namespace + Clone,

source§

fn clone(&self) -> NMT<E, H, ARITY, N, T>

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<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug, + E: Element + Namespaced<Namespace = N> + Debug, + T: NodeValue + Debug, + N: Namespace + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, const ARITY: usize, N, T> Deserialize<'de> for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize, T: NodeValue + CanonicalSerialize + CanonicalDeserialize, - N: Namespace,

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<E, H, const ARITY: usize, N, T> Hash for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Hash, - E: Element + Namespaced<Namespace = N> + Hash, - T: NodeValue + Hash, - N: Namespace + Hash,

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<E, H, const ARITY: usize, N, T> MerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + N: Namespace,

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<E, H, const ARITY: usize, N, T> Hash for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Hash, + E: Element + Namespaced<Namespace = N> + Hash, + T: NodeValue + Hash, + N: Namespace + Hash,

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<E, H, const ARITY: usize, N, T> MerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

§

type Element = E

Merkle tree element type
§

type Index = u64

Index type for this merkle tree
§

type NodeValue = NamespacedHash<T, N>

Internal and root node value
§

type MembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::MembershipProof

Merkle proof
§

type BatchMembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::BatchMembershipProof

Batch proof
source§

const ARITY: usize = <InnerTree<E, H, T, N, ARITY> as MerkleTreeScheme>::ARITY

Tree ARITY
§

type Commitment = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::Commitment

Merkle tree commitment
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( + N: Namespace,

§

type Element = E

Merkle tree element type
§

type Index = u64

Index type for this merkle tree
§

type NodeValue = NamespacedHash<T, N>

Internal and root node value
§

type MembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::MembershipProof

Merkle proof
§

type BatchMembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::BatchMembershipProof

Batch proof
source§

const ARITY: usize = <InnerTree<E, H, T, N, ARITY> as MerkleTreeScheme>::ARITY

Tree ARITY
§

type Commitment = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::Commitment

Merkle tree commitment
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( &self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( - root: impl Borrow<Self::NodeValue>, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter( + pos: impl Borrow<Self::Index>, +) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( + root: impl Borrow<Self::NodeValue>, + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter( &self, ) -> MerkleTreeIter<'_, Self::Element, Self::Index, Self::NodeValue>

Return an iterator that iterates through all element that are not -forgetton
source§

impl<E, H, const ARITY: usize, N, T> NamespacedMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, +forgetton

source§

impl<E, H, const ARITY: usize, N, T> NamespacedMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, E: Element + Namespaced<Namespace = N>, T: NodeValue, N: Namespace,

§

type NamespaceId = N

Namespace type
§

type NamespaceProof = NaiveNamespaceProof<E, T, ARITY, N, H>

Namespace proof type
source§

fn get_namespace_proof( @@ -72,77 +72,78 @@ &self, proof: &Self::NamespaceProof, namespace: Self::NamespaceId, -) -> Result<Result<(), ()>, MerkleTreeError>

Verifies the completeness proof for a given set of leaves and a -namespace.
source§

impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq, - E: Element + Namespaced<Namespace = N> + PartialEq, - T: NodeValue + PartialEq, - N: Namespace + PartialEq,

source§

fn eq(&self, other: &NMT<E, H, ARITY, N, T>) -> 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<E, H, const ARITY: usize, N, T> Serialize for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verifies the completeness proof for a given set of leaves and a +namespace.
source§

impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq, + E: Element + Namespaced<Namespace = N> + PartialEq, + T: NodeValue + PartialEq, + N: Namespace + PartialEq,

source§

fn eq(&self, other: &NMT<E, H, ARITY, N, T>) -> 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<E, H, const ARITY: usize, N, T> Serialize for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize, T: NodeValue + CanonicalSerialize + CanonicalDeserialize, - N: Namespace,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq, - E: Element + Namespaced<Namespace = N> + Eq, - T: NodeValue + Eq, - N: Namespace + Eq,

source§

impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + N: Namespace,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq, + E: Element + Namespaced<Namespace = N> + Eq, + T: NodeValue + Eq, + N: Namespace + Eq,

source§

impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

Auto Trait Implementations§

§

impl<E, H, const ARITY: usize, N, T> Freeze for NMT<E, H, ARITY, N, T>

§

impl<E, H, const ARITY: usize, N, T> RefUnwindSafe for NMT<E, H, ARITY, N, T>

§

impl<E, H, const ARITY: usize, N, T> Send for NMT<E, H, ARITY, N, T>
where - N: Send, - E: Sync + Send, - T: Send, - H: Send,

§

impl<E, H, const ARITY: usize, N, T> Sync for NMT<E, H, ARITY, N, T>
where - E: Sync + Send, - N: Send, - T: Send, - H: Sync,

§

impl<E, H, const ARITY: usize, N, T> Unpin for NMT<E, H, ARITY, N, T>
where - H: Unpin, - E: Unpin, - T: Unpin, - N: Unpin,

§

impl<E, H, const ARITY: usize, N, T> UnwindSafe for NMT<E, H, ARITY, N, T>

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + N: Namespace,

Auto Trait Implementations§

§

impl<E, H, const ARITY: usize, N, T> Freeze for NMT<E, H, ARITY, N, T>

§

impl<E, H, const ARITY: usize, N, T> RefUnwindSafe for NMT<E, H, ARITY, N, T>

§

impl<E, H, const ARITY: usize, N, T> Send for NMT<E, H, ARITY, N, T>
where + N: Send, + E: Sync + Send, + T: Send, + H: Send,

§

impl<E, H, const ARITY: usize, N, T> Sync for NMT<E, H, ARITY, N, T>
where + E: Sync + Send, + N: Send, + T: Send, + H: Sync,

§

impl<E, H, const ARITY: usize, N, T> Unpin for NMT<E, H, ARITY, N, T>
where + H: Unpin, + E: Unpin, + T: Unpin, + N: Unpin,

§

impl<E, H, const ARITY: usize, N, T> UnwindSafe for NMT<E, H, ARITY, N, T>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/trait.BindNamespace.html b/jf_merkle_tree/namespaced_merkle_tree/trait.BindNamespace.html index 440408dde..6aefceab5 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/trait.BindNamespace.html +++ b/jf_merkle_tree/namespaced_merkle_tree/trait.BindNamespace.html @@ -1,4 +1,4 @@ -BindNamespace in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait BindNamespace<E, I, T, N>: DigestAlgorithm<E, I, T>
where +BindNamespace in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait BindNamespace<E, I, T, N>: DigestAlgorithm<E, I, T>
where E: Element, N: Namespace, T: NodeValue, @@ -10,7 +10,7 @@ }
Expand description

Trait indicating that a digest algorithm can commit to a namespace range.

Required Methods§

source

fn generate_namespaced_commitment(namespaced_hash: NamespacedHash<T, N>) -> T

Generate a commitment that binds a node to a namespace range

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, I, N> BindNamespace<E, I, Sha3Node, N> for Sha3Digest
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, I, N> BindNamespace<E, I, Sha3Node, N> for Sha3Digest
where E: Element + CanonicalSerialize, I: Index, N: Namespace,

\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/trait.Namespace.html b/jf_merkle_tree/namespaced_merkle_tree/trait.Namespace.html index f86457e1d..cda12213c 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/trait.Namespace.html +++ b/jf_merkle_tree/namespaced_merkle_tree/trait.Namespace.html @@ -1,8 +1,8 @@ -Namespace in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait Namespace: Debug + Clone + CanonicalDeserialize + CanonicalSerialize + Default + Copy + Hash + Ord + Serialize + DeserializeOwned {
+Namespace in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait Namespace: Debug + Clone + CanonicalDeserialize + CanonicalSerialize + Default + Copy + Hash + Ord + Serialize + DeserializeOwned {
     // Required methods
     fn min() -> Self;
     fn max() -> Self;
 }
Expand description

Trait indicating that a struct can act as an orderable namespace

Required Methods§

source

fn min() -> Self

Returns the minimum possible namespace

source

fn max() -> Self

Returns the maximum possible namespace

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Namespace for u64

Implementors§

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Namespace for u64

Implementors§

\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/trait.NamespaceProof.html b/jf_merkle_tree/namespaced_merkle_tree/trait.NamespaceProof.html index 673cdfccc..0a0e205d0 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/trait.NamespaceProof.html +++ b/jf_merkle_tree/namespaced_merkle_tree/trait.NamespaceProof.html @@ -1,23 +1,23 @@ -NamespaceProof in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait NamespaceProof {
+NamespaceProof in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait NamespaceProof {
     type Namespace: Namespace;
     type Leaf: Element + Namespaced<Namespace = Self::Namespace>;
     type Node: NodeValue;
 
     // Required methods
-    fn get_namespace_leaves(&self) -> Vec<&Self::Leaf>;
+    fn get_namespace_leaves(&self) -> Vec<&Self::Leaf>;
     fn verify(
         &self,
         root: &NamespacedHash<Self::Node, Self::Namespace>,
         namespace: Self::Namespace,
-    ) -> Result<Result<(), ()>, MerkleTreeError>;
+    ) -> Result<Result<(), ()>, MerkleTreeError>;
 }
Expand description

Completeness proof for a namespace

Required Associated Types§

source

type Namespace: Namespace

Namespace type

source

type Leaf: Element + Namespaced<Namespace = Self::Namespace>

Namespaced leaf

source

type Node: NodeValue

Internal node value

-

Required Methods§

source

fn get_namespace_leaves(&self) -> Vec<&Self::Leaf>

Return the set of leaves associated with this Namespace proof

+

Required Methods§

source

fn get_namespace_leaves(&self) -> Vec<&Self::Leaf>

Return the set of leaves associated with this Namespace proof

source

fn verify( &self, root: &NamespacedHash<Self::Node, Self::Namespace>, namespace: Self::Namespace, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify a namespace proof

+) -> Result<Result<(), ()>, MerkleTreeError>

Verify a namespace proof

Implementors§

\ No newline at end of file diff --git a/jf_merkle_tree/namespaced_merkle_tree/trait.Namespaced.html b/jf_merkle_tree/namespaced_merkle_tree/trait.Namespaced.html index 1ef0ec40f..6ca62e62f 100644 --- a/jf_merkle_tree/namespaced_merkle_tree/trait.Namespaced.html +++ b/jf_merkle_tree/namespaced_merkle_tree/trait.Namespaced.html @@ -1,4 +1,4 @@ -Namespaced in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait Namespaced {
+Namespaced in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait Namespaced {
     type Namespace: Namespace;
 
     // Required method
diff --git a/jf_merkle_tree/namespaced_merkle_tree/trait.NamespacedMerkleTreeScheme.html b/jf_merkle_tree/namespaced_merkle_tree/trait.NamespacedMerkleTreeScheme.html
index 8fafbcee3..a3b7b5568 100644
--- a/jf_merkle_tree/namespaced_merkle_tree/trait.NamespacedMerkleTreeScheme.html
+++ b/jf_merkle_tree/namespaced_merkle_tree/trait.NamespacedMerkleTreeScheme.html
@@ -1,4 +1,4 @@
-NamespacedMerkleTreeScheme in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait NamespacedMerkleTreeScheme: AppendableMerkleTreeScheme
where +NamespacedMerkleTreeScheme in jf_merkle_tree::namespaced_merkle_tree - Rust
pub trait NamespacedMerkleTreeScheme: AppendableMerkleTreeScheme
where Self::Element: Namespaced,
{ type NamespaceProof: NamespaceProof; type NamespaceId: Namespace; @@ -12,7 +12,7 @@ &self, proof: &Self::NamespaceProof, namespace: Self::NamespaceId, - ) -> Result<Result<(), ()>, MerkleTreeError>; + ) -> Result<Result<(), ()>, MerkleTreeError>; }
Expand description

Namespaced Merkle Tree where leaves are sorted by a namespace identifier. The data structure supports namespace inclusion proofs.

Required Associated Types§

source

type NamespaceProof: NamespaceProof

Namespace proof type

@@ -26,10 +26,10 @@ &self, proof: &Self::NamespaceProof, namespace: Self::NamespaceId, -) -> Result<Result<(), ()>, MerkleTreeError>

Verifies the completeness proof for a given set of leaves and a +) -> Result<Result<(), ()>, MerkleTreeError>

Verifies the completeness proof for a given set of leaves and a namespace.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, const ARITY: usize, N, T> NamespacedMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, const ARITY: usize, N, T> NamespacedMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone, E: Element + Namespaced<Namespace = N>, T: NodeValue, N: Namespace,

§

type NamespaceId = N

§

type NamespaceProof = NaiveNamespaceProof<E, T, ARITY, N, H>

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/enum.MerkleNode.html b/jf_merkle_tree/prelude/enum.MerkleNode.html index 2d4d106e8..b01989341 100644 --- a/jf_merkle_tree/prelude/enum.MerkleNode.html +++ b/jf_merkle_tree/prelude/enum.MerkleNode.html @@ -1,8 +1,8 @@ -MerkleNode in jf_merkle_tree::prelude - Rust

Enum jf_merkle_tree::prelude::MerkleNode

source ·
pub enum MerkleNode<E: Element, I: Index, T: NodeValue> {
+MerkleNode in jf_merkle_tree::prelude - Rust

Enum jf_merkle_tree::prelude::MerkleNode

source ·
pub enum MerkleNode<E: Element, I: Index, T: NodeValue> {
     Empty,
     Branch {
         value: T,
-        children: Vec<Arc<MerkleNode<E, I, T>>>,
+        children: Vec<Arc<MerkleNode<E, I, T>>>,
     },
     Leaf {
         value: T,
@@ -16,72 +16,73 @@
 

Variants§

§

Empty

An empty subtree.

§

Branch

An internal branching node

Fields

§value: T

Merkle hash value of this subtree

-
§children: Vec<Arc<MerkleNode<E, I, T>>>

All it’s children

+
§children: Vec<Arc<MerkleNode<E, I, T>>>

All it’s children

§

Leaf

A leaf node

Fields

§value: T

Merkle hash value of this leaf

§pos: I

Index of this leaf

§elem: E

Associated element of this leaf

§

ForgettenSubtree

The subtree is forgotten from the memory

Fields

§value: T

Merkle hash value of this forgotten subtree

-

Trait Implementations§

source§

impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>

source§

fn clone(&self) -> MerkleNode<E, I, T>

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<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, I, T: NodeValue> Deserialize<'de> for MerkleNode<E, I, T>
where +

Trait Implementations§

source§

impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>

source§

fn clone(&self) -> MerkleNode<E, I, T>

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<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, I, T: NodeValue> Deserialize<'de> for MerkleNode<E, I, T>
where E: CanonicalSerialize + CanonicalDeserialize + Element, - I: CanonicalSerialize + CanonicalDeserialize + Index,

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<E: Hash + Element, I: Hash + Index, T: Hash + NodeValue> Hash for MerkleNode<E, I, T>

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<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>

source§

fn eq(&self, other: &MerkleNode<E, I, T>) -> 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<E, I, T: NodeValue> Serialize for MerkleNode<E, I, T>
where + I: CanonicalSerialize + CanonicalDeserialize + Index,

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<E: Hash + Element, I: Hash + Index, T: Hash + NodeValue> Hash for MerkleNode<E, I, T>

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<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>

source§

fn eq(&self, other: &MerkleNode<E, I, T>) -> 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<E, I, T: NodeValue> Serialize for MerkleNode<E, I, T>
where E: CanonicalSerialize + CanonicalDeserialize + Element, - I: CanonicalSerialize + CanonicalDeserialize + Index,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>

source§

impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>

Auto Trait Implementations§

§

impl<E, I, T> Freeze for MerkleNode<E, I, T>
where - T: Freeze, - I: Freeze, - E: Freeze,

§

impl<E, I, T> RefUnwindSafe for MerkleNode<E, I, T>
where - T: RefUnwindSafe, - I: RefUnwindSafe, - E: RefUnwindSafe,

§

impl<E, I, T> Send for MerkleNode<E, I, T>
where - T: Send, - I: Send + Sync, - E: Send + Sync,

§

impl<E, I, T> Sync for MerkleNode<E, I, T>
where - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, I, T> Unpin for MerkleNode<E, I, T>
where - T: Unpin, - I: Unpin, - E: Unpin,

§

impl<E, I, T> UnwindSafe for MerkleNode<E, I, T>

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + I: CanonicalSerialize + CanonicalDeserialize + Index,
source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>

source§

impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>

Auto Trait Implementations§

§

impl<E, I, T> Freeze for MerkleNode<E, I, T>
where + T: Freeze, + I: Freeze, + E: Freeze,

§

impl<E, I, T> RefUnwindSafe for MerkleNode<E, I, T>
where + T: RefUnwindSafe, + I: RefUnwindSafe, + E: RefUnwindSafe,

§

impl<E, I, T> Send for MerkleNode<E, I, T>
where + T: Send, + I: Send + Sync, + E: Send + Sync,

§

impl<E, I, T> Sync for MerkleNode<E, I, T>
where + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, I, T> Unpin for MerkleNode<E, I, T>
where + T: Unpin, + I: Unpin, + E: Unpin,

§

impl<E, I, T> UnwindSafe for MerkleNode<E, I, T>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/index.html b/jf_merkle_tree/prelude/index.html index 4fa459934..c185b04ce 100644 --- a/jf_merkle_tree/prelude/index.html +++ b/jf_merkle_tree/prelude/index.html @@ -1,2 +1,2 @@ -jf_merkle_tree::prelude - Rust

Module jf_merkle_tree::prelude

source ·
Expand description

Prelude. Also provides sample instantiations of merkle trees.

+jf_merkle_tree::prelude - Rust

Module jf_merkle_tree::prelude

source ·
Expand description

Prelude. Also provides sample instantiations of merkle trees.

Re-exports§

Macros§

Structs§

Enums§

Type Aliases§

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/macro.impl_to_traversal_path_biguint.html b/jf_merkle_tree/prelude/macro.impl_to_traversal_path_biguint.html index 151e9a13c..cc9270c2d 100644 --- a/jf_merkle_tree/prelude/macro.impl_to_traversal_path_biguint.html +++ b/jf_merkle_tree/prelude/macro.impl_to_traversal_path_biguint.html @@ -1,4 +1,4 @@ -impl_to_traversal_path_biguint in jf_merkle_tree::prelude - Rust
macro_rules! impl_to_traversal_path_biguint {
+impl_to_traversal_path_biguint in jf_merkle_tree::prelude - Rust
macro_rules! impl_to_traversal_path_biguint {
     ($t: ty) => { ... };
 }
Expand description

Macros for implementing ToTreversalPath for BigUint types

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/macro.impl_to_traversal_path_primitives.html b/jf_merkle_tree/prelude/macro.impl_to_traversal_path_primitives.html index 7e1ccb4a7..b3237d00d 100644 --- a/jf_merkle_tree/prelude/macro.impl_to_traversal_path_primitives.html +++ b/jf_merkle_tree/prelude/macro.impl_to_traversal_path_primitives.html @@ -1,4 +1,4 @@ -impl_to_traversal_path_primitives in jf_merkle_tree::prelude - Rust
macro_rules! impl_to_traversal_path_primitives {
+impl_to_traversal_path_primitives in jf_merkle_tree::prelude - Rust
macro_rules! impl_to_traversal_path_primitives {
     ($t: ty) => { ... };
 }
Expand description

Macros for implementing ToTreversalPath for primitive types

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/struct.MerkleProof.html b/jf_merkle_tree/prelude/struct.MerkleProof.html index 88b94a38e..74b71eae4 100644 --- a/jf_merkle_tree/prelude/struct.MerkleProof.html +++ b/jf_merkle_tree/prelude/struct.MerkleProof.html @@ -1,4 +1,4 @@ -MerkleProof in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::MerkleProof

source ·
pub struct MerkleProof<E, I, T, const ARITY: usize>
where +MerkleProof in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::MerkleProof

source ·
pub struct MerkleProof<E, I, T, const ARITY: usize>
where E: Element, I: Index, T: NodeValue,
{ @@ -7,89 +7,90 @@ }
Expand description

Merkle proof struct.

Fields§

§pos: I

Proof of inclusion for element at index pos

§proof: MerklePath<E, I, T>

Nodes of proof path, from root to leaf

-

Implementations§

source§

impl<E, I, T, const ARITY: usize> MerkleProof<E, I, T, ARITY>
where +

Implementations§

source§

impl<E, I, T, const ARITY: usize> MerkleProof<E, I, T, ARITY>
where E: Element, I: Index, - T: NodeValue,

source

pub fn tree_height(&self) -> usize

Return the height of this proof.

+ T: NodeValue,
source

pub fn tree_height(&self) -> usize

Return the height of this proof.

source

pub fn new(pos: I, proof: MerklePath<E, I, T>) -> Self

Form a MerkleProof from a given index and Merkle path.

-
source

pub fn index(&self) -> &I

Return the index of this MerkleProof.

-
source

pub fn elem(&self) -> Option<&E>

Return the element associated with this MerkleProof. None if it’s a +

source

pub fn index(&self) -> &I

Return the index of this MerkleProof.

+
source

pub fn elem(&self) -> Option<&E>

Return the element associated with this MerkleProof. None if it’s a non-membership proof.

-

Trait Implementations§

source§

impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
where - E: Element + Clone, - I: Index + Clone, - T: NodeValue + Clone,

source§

fn clone(&self) -> MerkleProof<E, I, T, ARITY>

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<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
where - E: Element + Debug, - I: Index + Debug, - T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, I, T, const ARITY: usize> Deserialize<'de> for MerkleProof<E, I, T, ARITY>
where +

Trait Implementations§

source§

impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
where + E: Element + Clone, + I: Index + Clone, + T: NodeValue + Clone,

source§

fn clone(&self) -> MerkleProof<E, I, T, ARITY>

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<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
where + E: Element + Debug, + I: Index + Debug, + T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, I, T, const ARITY: usize> Deserialize<'de> for MerkleProof<E, I, T, ARITY>
where E: Element + CanonicalSerialize + CanonicalDeserialize, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

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<E, I, T, const ARITY: usize> Hash for MerkleProof<E, I, T, ARITY>
where - E: Element + Hash, - I: Index + Hash, - T: NodeValue + Hash,

source§

fn hash<__HEIT>(&self, __state: &mut __HEIT)
where - __HEIT: Hasher,

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<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
where - E: Element + PartialEq, - I: Index + PartialEq, - T: NodeValue + PartialEq,

source§

fn eq(&self, other: &Self) -> 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<E, I, T, const ARITY: usize> Serialize for MerkleProof<E, I, T, ARITY>
where + T: NodeValue,

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<E, I, T, const ARITY: usize> Hash for MerkleProof<E, I, T, ARITY>
where + E: Element + Hash, + I: Index + Hash, + T: NodeValue + Hash,

source§

fn hash<__HEIT>(&self, __state: &mut __HEIT)
where + __HEIT: Hasher,

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<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
where + E: Element + PartialEq, + I: Index + PartialEq, + T: NodeValue + PartialEq,

source§

fn eq(&self, other: &Self) -> 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<E, I, T, const ARITY: usize> Serialize for MerkleProof<E, I, T, ARITY>
where E: Element + CanonicalSerialize + CanonicalDeserialize, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
where - E: Element + Eq, - I: Index + Eq, - T: NodeValue + Eq,

Auto Trait Implementations§

§

impl<E, I, T, const ARITY: usize> Freeze for MerkleProof<E, I, T, ARITY>
where - I: Freeze,

§

impl<E, I, T, const ARITY: usize> RefUnwindSafe for MerkleProof<E, I, T, ARITY>
where - I: RefUnwindSafe, - T: RefUnwindSafe, - E: RefUnwindSafe,

§

impl<E, I, T, const ARITY: usize> Send for MerkleProof<E, I, T, ARITY>
where - I: Send + Sync, - T: Send, - E: Send + Sync,

§

impl<E, I, T, const ARITY: usize> Sync for MerkleProof<E, I, T, ARITY>
where - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, I, T, const ARITY: usize> Unpin for MerkleProof<E, I, T, ARITY>
where - I: Unpin, - T: Unpin, - E: Unpin,

§

impl<E, I, T, const ARITY: usize> UnwindSafe for MerkleProof<E, I, T, ARITY>

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + T: NodeValue,
source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
where + E: Element + Eq, + I: Index + Eq, + T: NodeValue + Eq,

Auto Trait Implementations§

§

impl<E, I, T, const ARITY: usize> Freeze for MerkleProof<E, I, T, ARITY>
where + I: Freeze,

§

impl<E, I, T, const ARITY: usize> RefUnwindSafe for MerkleProof<E, I, T, ARITY>
where + I: RefUnwindSafe, + T: RefUnwindSafe, + E: RefUnwindSafe,

§

impl<E, I, T, const ARITY: usize> Send for MerkleProof<E, I, T, ARITY>
where + I: Send + Sync, + T: Send, + E: Send + Sync,

§

impl<E, I, T, const ARITY: usize> Sync for MerkleProof<E, I, T, ARITY>
where + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, I, T, const ARITY: usize> Unpin for MerkleProof<E, I, T, ARITY>
where + I: Unpin, + T: Unpin, + E: Unpin,

§

impl<E, I, T, const ARITY: usize> UnwindSafe for MerkleProof<E, I, T, ARITY>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/struct.RescueHash.html b/jf_merkle_tree/prelude/struct.RescueHash.html index ae190fba3..0550f2bf1 100644 --- a/jf_merkle_tree/prelude/struct.RescueHash.html +++ b/jf_merkle_tree/prelude/struct.RescueHash.html @@ -1,38 +1,40 @@ -RescueHash in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::RescueHash

source ·
pub struct RescueHash<F: RescueParameter> { /* private fields */ }
Expand description

Wrapper for rescue hash function

-

Trait Implementations§

source§

impl<F: Clone + RescueParameter> Clone for RescueHash<F>

source§

fn clone(&self) -> RescueHash<F>

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<F: Debug + RescueParameter> Debug for RescueHash<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &F) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>

source§

fn eq(&self, other: &RescueHash<F>) -> 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<F: Copy + RescueParameter> Copy for RescueHash<F>

source§

impl<F: Eq + RescueParameter> Eq for RescueHash<F>

source§

impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>

Auto Trait Implementations§

§

impl<F> Freeze for RescueHash<F>

§

impl<F> RefUnwindSafe for RescueHash<F>
where - F: RefUnwindSafe,

§

impl<F> Send for RescueHash<F>

§

impl<F> Sync for RescueHash<F>

§

impl<F> Unpin for RescueHash<F>
where - F: Unpin,

§

impl<F> UnwindSafe for RescueHash<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +RescueHash in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::RescueHash

source ·
pub struct RescueHash<F: RescueParameter> { /* private fields */ }
Expand description

Wrapper for rescue hash function

+

Trait Implementations§

source§

impl<F: Clone + RescueParameter> Clone for RescueHash<F>

source§

fn clone(&self) -> RescueHash<F>

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<F: Debug + RescueParameter> Debug for RescueHash<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &I, elem: &F) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

fn digest(data: &[F]) -> Result<F, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(pos: &u64, elem: &Interval<F>) -> Result<F, MerkleTreeError>

Digest an indexed element
source§

impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>

source§

fn eq(&self, other: &RescueHash<F>) -> 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<F: Copy + RescueParameter> Copy for RescueHash<F>

source§

impl<F: Eq + RescueParameter> Eq for RescueHash<F>

source§

impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>

Auto Trait Implementations§

§

impl<F> Freeze for RescueHash<F>

§

impl<F> RefUnwindSafe for RescueHash<F>
where + F: RefUnwindSafe,

§

impl<F> Send for RescueHash<F>

§

impl<F> Sync for RescueHash<F>

§

impl<F> Unpin for RescueHash<F>
where + F: Unpin,

§

impl<F> UnwindSafe for RescueHash<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/struct.Sha3Digest.html b/jf_merkle_tree/prelude/struct.Sha3Digest.html index 264076de7..88ddf089c 100644 --- a/jf_merkle_tree/prelude/struct.Sha3Digest.html +++ b/jf_merkle_tree/prelude/struct.Sha3Digest.html @@ -1,43 +1,44 @@ -Sha3Digest in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::Sha3Digest

source ·
pub struct Sha3Digest();
Expand description

Wrapper for SHA3_512 hash function

+Sha3Digest in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::Sha3Digest

source ·
pub struct Sha3Digest();
Expand description

Wrapper for SHA3_512 hash function

Trait Implementations§

source§

impl<E, I, N> BindNamespace<E, I, Sha3Node, N> for Sha3Digest
where E: Element + CanonicalSerialize, I: Index, N: Namespace,

source§

fn generate_namespaced_commitment( namespaced_hash: NamespacedHash<Sha3Node, N>, -) -> Sha3Node

Generate a commitment that binds a node to a namespace range
source§

impl Clone for Sha3Digest

source§

fn clone(&self) -> Sha3Digest

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 Sha3Digest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

fn digest(data: &[Sha3Node]) -> Result<Sha3Node, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(_pos: &I, elem: &E) -> Result<Sha3Node, MerkleTreeError>

Digest an indexed element
source§

impl Hash for Sha3Digest

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 Sha3Digest

source§

fn eq(&self, other: &Sha3Digest) -> 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 Sha3Digest

source§

impl StructuralPartialEq for Sha3Digest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> Sha3Node
Generate a commitment that binds a node to a namespace range
source§

impl Clone for Sha3Digest

source§

fn clone(&self) -> Sha3Digest

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 Sha3Digest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

fn digest(data: &[Sha3Node]) -> Result<Sha3Node, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(_pos: &I, elem: &E) -> Result<Sha3Node, MerkleTreeError>

Digest an indexed element
source§

impl Hash for Sha3Digest

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 Sha3Digest

source§

fn eq(&self, other: &Sha3Digest) -> 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 Sha3Digest

source§

impl StructuralPartialEq for Sha3Digest

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file + T: Clone + Eq + PartialEq + Hash, \ No newline at end of file diff --git a/jf_merkle_tree/prelude/struct.Sha3Node.html b/jf_merkle_tree/prelude/struct.Sha3Node.html index 3ed362c00..c12987fad 100644 --- a/jf_merkle_tree/prelude/struct.Sha3Node.html +++ b/jf_merkle_tree/prelude/struct.Sha3Node.html @@ -1,76 +1,78 @@ -Sha3Node in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::Sha3Node

source ·
pub struct Sha3Node(/* private fields */);
Expand description

Update the array length here

-

Trait Implementations§

source§

impl AsRef<[u8]> for Sha3Node

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<E, I, N> BindNamespace<E, I, Sha3Node, N> for Sha3Digest
where +Sha3Node in jf_merkle_tree::prelude - Rust

Struct jf_merkle_tree::prelude::Sha3Node

source ·
pub struct Sha3Node(/* private fields */);
Expand description

Update the array length here

+

Trait Implementations§

source§

impl AsRef<[u8]> for Sha3Node

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<E, I, N> BindNamespace<E, I, Sha3Node, N> for Sha3Digest
where E: Element + CanonicalSerialize, I: Index, N: Namespace,

source§

fn generate_namespaced_commitment( namespaced_hash: NamespacedHash<Sha3Node, N>, -) -> Sha3Node

Generate a commitment that binds a node to a namespace range
source§

impl CanonicalDeserialize for Sha3Node

source§

fn deserialize_with_mode<R: Read>( +) -> Sha3Node

Generate a commitment that binds a node to a namespace range
source§

impl CanonicalDeserialize for Sha3Node

source§

fn deserialize_with_mode<R: Read>( reader: R, _compress: Compress, _validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl CanonicalSerialize for Sha3Node

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl CanonicalSerialize for Sha3Node

source§

fn serialize_with_mode<W: Write>( &self, writer: W, _compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for Sha3Node

source§

fn clone(&self) -> Sha3Node

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 Sha3Node

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Sha3Node

source§

fn default() -> Sha3Node

Returns the “default value” for a type. Read more
source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

fn digest(data: &[Sha3Node]) -> Result<Sha3Node, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(_pos: &I, elem: &E) -> Result<Sha3Node, MerkleTreeError>

Digest an indexed element
source§

impl Hash for Sha3Node

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 Ord for Sha3Node

source§

fn cmp(&self, other: &Sha3Node) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where - Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where - Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Sha3Node

source§

fn eq(&self, other: &Sha3Node) -> 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 PartialOrd for Sha3Node

source§

fn partial_cmp(&self, other: &Sha3Node) -> 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 <= -operator. 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 >= -operator. Read more
source§

impl Valid for Sha3Node

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl Copy for Sha3Node

source§

impl Eq for Sha3Node

source§

impl StructuralPartialEq for Sha3Node

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, _compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl Clone for Sha3Node

source§

fn clone(&self) -> Sha3Node

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 Sha3Node

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Sha3Node

source§

fn default() -> Sha3Node

Returns the “default value” for a type. Read more
source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

fn digest(data: &[Sha3Node]) -> Result<Sha3Node, MerkleTreeError>

Digest a list of values
source§

fn digest_leaf(_pos: &I, elem: &E) -> Result<Sha3Node, MerkleTreeError>

Digest an indexed element
source§

impl Hash for Sha3Node

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 Ord for Sha3Node

source§

fn cmp(&self, other: &Sha3Node) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Self
where + Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Self
where + Self: Sized + PartialOrd,

Restrict a value to a certain interval. Read more
source§

impl PartialEq for Sha3Node

source§

fn eq(&self, other: &Sha3Node) -> 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 PartialOrd for Sha3Node

source§

fn partial_cmp(&self, other: &Sha3Node) -> 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 <= +operator. 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 >= +operator. Read more
source§

impl Valid for Sha3Node

source§

fn check(&self) -> Result<(), SerializationError>

§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl Copy for Sha3Node

source§

impl Eq for Sha3Node

source§

impl StructuralPartialEq for Sha3Node

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

source§

impl<T> Index for T
where - T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

source§

impl<T> NodeValue for T
where - T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file + T: Clone + Eq + PartialEq + Hash,
source§

impl<T> Index for T
where + T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone,

source§

impl<T> NodeValue for T
where + T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.LightWeightSHA3MerkleTree.html b/jf_merkle_tree/prelude/type.LightWeightSHA3MerkleTree.html index c2a13ce37..3acd5ed67 100644 --- a/jf_merkle_tree/prelude/type.LightWeightSHA3MerkleTree.html +++ b/jf_merkle_tree/prelude/type.LightWeightSHA3MerkleTree.html @@ -1,2 +1,2 @@ -LightWeightSHA3MerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::LightWeightSHA3MerkleTree

source ·
pub type LightWeightSHA3MerkleTree<E> = LightWeightMerkleTree<E, Sha3Digest, u64, 3, Sha3Node>;
Expand description

Light weight merkle tree using SHA3 hash

+LightWeightSHA3MerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::LightWeightSHA3MerkleTree

source ·
pub type LightWeightSHA3MerkleTree<E> = LightWeightMerkleTree<E, Sha3Digest, u64, 3, Sha3Node>;
Expand description

Light weight merkle tree using SHA3 hash

Aliased Type§

struct LightWeightSHA3MerkleTree<E> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.MerklePath.html b/jf_merkle_tree/prelude/type.MerklePath.html index 11e81cc98..0be318f21 100644 --- a/jf_merkle_tree/prelude/type.MerklePath.html +++ b/jf_merkle_tree/prelude/type.MerklePath.html @@ -1,2 +1,2 @@ -MerklePath in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::MerklePath

source ·
pub type MerklePath<E, I, T> = Vec<MerkleNode<E, I, T>>;
Expand description

A merkle path is a bottom-up list of nodes from leaf to the root.

+MerklePath in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::MerklePath

source ·
pub type MerklePath<E, I, T> = Vec<MerkleNode<E, I, T>>;
Expand description

A merkle path is a bottom-up list of nodes from leaf to the root.

Aliased Type§

struct MerklePath<E, I, T> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.RescueLightWeightMerkleTree.html b/jf_merkle_tree/prelude/type.RescueLightWeightMerkleTree.html index bf6d11ff1..210b1f8cb 100644 --- a/jf_merkle_tree/prelude/type.RescueLightWeightMerkleTree.html +++ b/jf_merkle_tree/prelude/type.RescueLightWeightMerkleTree.html @@ -1,2 +1,2 @@ -RescueLightWeightMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueLightWeightMerkleTree

source ·
pub type RescueLightWeightMerkleTree<F> = LightWeightMerkleTree<F, RescueHash<F>, u64, 3, F>;
Expand description

A standard light merkle tree using RATE-3 rescue hash function

+RescueLightWeightMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueLightWeightMerkleTree

source ·
pub type RescueLightWeightMerkleTree<F> = LightWeightMerkleTree<F, RescueHash<F>, u64, 3, F>;
Expand description

A standard light merkle tree using RATE-3 rescue hash function

Aliased Type§

struct RescueLightWeightMerkleTree<F> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.RescueMerkleTree.html b/jf_merkle_tree/prelude/type.RescueMerkleTree.html index 3a2e36cf8..4853344f4 100644 --- a/jf_merkle_tree/prelude/type.RescueMerkleTree.html +++ b/jf_merkle_tree/prelude/type.RescueMerkleTree.html @@ -1,2 +1,2 @@ -RescueMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueMerkleTree

source ·
pub type RescueMerkleTree<F> = MerkleTree<F, RescueHash<F>, u64, 3, F>;
Expand description

A standard merkle tree using RATE-3 rescue hash function

+RescueMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueMerkleTree

source ·
pub type RescueMerkleTree<F> = MerkleTree<F, RescueHash<F>, u64, 3, F>;
Expand description

A standard merkle tree using RATE-3 rescue hash function

Aliased Type§

struct RescueMerkleTree<F> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.RescueSparseMerkleTree.html b/jf_merkle_tree/prelude/type.RescueSparseMerkleTree.html index bd1371cec..784e30d90 100644 --- a/jf_merkle_tree/prelude/type.RescueSparseMerkleTree.html +++ b/jf_merkle_tree/prelude/type.RescueSparseMerkleTree.html @@ -1,2 +1,2 @@ -RescueSparseMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueSparseMerkleTree

source ·
pub type RescueSparseMerkleTree<I, F> = UniversalMerkleTree<F, RescueHash<F>, I, 3, F>;
Expand description

Example instantiation of a SparseMerkleTree indexed by I

+RescueSparseMerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::RescueSparseMerkleTree

source ·
pub type RescueSparseMerkleTree<I, F> = UniversalMerkleTree<F, RescueHash<F>, I, 3, F>;
Expand description

Example instantiation of a SparseMerkleTree indexed by I

Aliased Type§

struct RescueSparseMerkleTree<I, F> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/prelude/type.SHA3MerkleTree.html b/jf_merkle_tree/prelude/type.SHA3MerkleTree.html index c647c6d8c..b70d321a3 100644 --- a/jf_merkle_tree/prelude/type.SHA3MerkleTree.html +++ b/jf_merkle_tree/prelude/type.SHA3MerkleTree.html @@ -1,2 +1,2 @@ -SHA3MerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::SHA3MerkleTree

source ·
pub type SHA3MerkleTree<E> = MerkleTree<E, Sha3Digest, u64, 3, Sha3Node>;
Expand description

Merkle tree using SHA3 hash

+SHA3MerkleTree in jf_merkle_tree::prelude - Rust

Type Alias jf_merkle_tree::prelude::SHA3MerkleTree

source ·
pub type SHA3MerkleTree<E> = MerkleTree<E, Sha3Digest, u64, 3, Sha3Node>;
Expand description

Merkle tree using SHA3 hash

Aliased Type§

struct SHA3MerkleTree<E> { /* private fields */ }
\ No newline at end of file diff --git a/jf_merkle_tree/trait.AppendableMerkleTreeScheme.html b/jf_merkle_tree/trait.AppendableMerkleTreeScheme.html index ffa978d9b..1ed5f0951 100644 --- a/jf_merkle_tree/trait.AppendableMerkleTreeScheme.html +++ b/jf_merkle_tree/trait.AppendableMerkleTreeScheme.html @@ -1,43 +1,43 @@ -AppendableMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::AppendableMerkleTreeScheme

source ·
pub trait AppendableMerkleTreeScheme: MerkleTreeScheme<Index = u64> {
+AppendableMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::AppendableMerkleTreeScheme

source ·
pub trait AppendableMerkleTreeScheme: MerkleTreeScheme<Index = u64> {
     // Required method
     fn push(
         &mut self,
-        elem: impl Borrow<Self::Element>,
-    ) -> Result<(), MerkleTreeError>;
+        elem: impl Borrow<Self::Element>,
+    ) -> Result<(), MerkleTreeError>;
 
     // Provided method
     fn extend(
         &mut self,
-        elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,
-    ) -> Result<(), MerkleTreeError> { ... }
+        elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,
+    ) -> Result<(), MerkleTreeError> { ... }
 }
Expand description

Merkle tree that allows insertion at back. Abstracted as a commitment for append-only vector.

Required Methods§

source

fn push( &mut self, - elem: impl Borrow<Self::Element>, -) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot

+ elem: impl Borrow<Self::Element>, +) -> Result<(), MerkleTreeError>

Insert a new value at the leftmost available slot

  • elem - element to insert in the tree
  • returns - Ok(()) if successful

Provided Methods§

source

fn extend( &mut self, - elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, -) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots

+ elems: impl IntoIterator<Item = impl Borrow<Self::Element>>, +) -> Result<(), MerkleTreeError>

Insert a list of new values at the leftmost available slots

  • elems - elements to insert
  • returns - Ok(()) if successful. If there are too many elements, insertions will be performed until the merkle tree is full, and will return an Err().
-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, const ARITY: usize, N, T> AppendableMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, const ARITY: usize, N, T> AppendableMerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
where + N: Namespace,

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
where E: Element, - H: DigestAlgorithm<E, u64, T>, - T: NodeValue,

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for LightWeightMerkleTree<E, H, u64, ARITY, T>
where + H: DigestAlgorithm<E, u64, T>, + T: NodeValue,

source§

impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for LightWeightMerkleTree<E, H, u64, ARITY, T>
where E: Element, - H: DigestAlgorithm<E, u64, T>, + H: DigestAlgorithm<E, u64, T>, T: NodeValue,

\ No newline at end of file diff --git a/jf_merkle_tree/trait.DigestAlgorithm.html b/jf_merkle_tree/trait.DigestAlgorithm.html index 526811d2d..e3e665f86 100644 --- a/jf_merkle_tree/trait.DigestAlgorithm.html +++ b/jf_merkle_tree/trait.DigestAlgorithm.html @@ -1,14 +1,14 @@ -DigestAlgorithm in jf_merkle_tree - Rust

Trait jf_merkle_tree::DigestAlgorithm

source ·
pub trait DigestAlgorithm<E, I, T>
where +DigestAlgorithm in jf_merkle_tree - Rust

Trait jf_merkle_tree::DigestAlgorithm

source ·
pub trait DigestAlgorithm<E, I, T>
where E: Element, I: Index, T: NodeValue,
{ // Required methods - fn digest(data: &[T]) -> Result<T, MerkleTreeError>; - fn digest_leaf(pos: &I, elem: &E) -> Result<T, MerkleTreeError>; + fn digest(data: &[T]) -> Result<T, MerkleTreeError>; + fn digest_leaf(pos: &I, elem: &E) -> Result<T, MerkleTreeError>; }
Expand description

Merkle tree hash function

-

Required Methods§

source

fn digest(data: &[T]) -> Result<T, MerkleTreeError>

Digest a list of values

-
source

fn digest_leaf(pos: &I, elem: &E) -> Result<T, MerkleTreeError>

Digest an indexed element

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where +

Required Methods§

source

fn digest(data: &[T]) -> Result<T, MerkleTreeError>

Digest a list of values

+
source

fn digest_leaf(pos: &I, elem: &E) -> Result<T, MerkleTreeError>

Digest an indexed element

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, I, H> DigestAlgorithm<E, I, HasherNode<H>> for HasherDigestAlgorithm
where E: Element + CanonicalSerialize, I: Index + CanonicalSerialize, - H: HasherDigest,

source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

\ No newline at end of file + H: HasherDigest,
source§

impl<E: Element + CanonicalSerialize, I: Index> DigestAlgorithm<E, I, Sha3Node> for Sha3Digest

source§

impl<F: RescueParameter> DigestAlgorithm<Interval<F>, u64, F> for RescueHash<F>

source§

impl<I: Index, F: RescueParameter + From<I>> DigestAlgorithm<F, I, F> for RescueHash<F>

\ No newline at end of file diff --git a/jf_merkle_tree/trait.Element.html b/jf_merkle_tree/trait.Element.html index b8d37ae33..a50230557 100644 --- a/jf_merkle_tree/trait.Element.html +++ b/jf_merkle_tree/trait.Element.html @@ -1,2 +1,2 @@ -Element in jf_merkle_tree - Rust

Trait jf_merkle_tree::Element

source ·
pub trait Element: Clone + Eq + PartialEq + Hash { }
Expand description

An element of a Merkle tree.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: Clone + Eq + PartialEq + Hash> Element for T

\ No newline at end of file +Element in jf_merkle_tree - Rust

Trait jf_merkle_tree::Element

source ·
pub trait Element: Clone + Eq + PartialEq + Hash { }
Expand description

An element of a Merkle tree.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: Clone + Eq + PartialEq + Hash> Element for T

\ No newline at end of file diff --git a/jf_merkle_tree/trait.ForgetableMerkleTreeScheme.html b/jf_merkle_tree/trait.ForgetableMerkleTreeScheme.html index b2c890d01..b20109443 100644 --- a/jf_merkle_tree/trait.ForgetableMerkleTreeScheme.html +++ b/jf_merkle_tree/trait.ForgetableMerkleTreeScheme.html @@ -1,43 +1,43 @@ -ForgetableMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::ForgetableMerkleTreeScheme

source ·
pub trait ForgetableMerkleTreeScheme: MerkleTreeScheme {
+ForgetableMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::ForgetableMerkleTreeScheme

source ·
pub trait ForgetableMerkleTreeScheme: MerkleTreeScheme {
     // Required methods
     fn forget(
         &mut self,
-        pos: impl Borrow<Self::Index>,
-    ) -> LookupResult<Self::Element, Self::MembershipProof, ()>;
+        pos: impl Borrow<Self::Index>,
+    ) -> LookupResult<Self::Element, Self::MembershipProof, ()>;
     fn remember(
         &mut self,
-        pos: impl Borrow<Self::Index>,
-        element: impl Borrow<Self::Element>,
-        proof: impl Borrow<Self::MembershipProof>,
-    ) -> Result<(), MerkleTreeError>;
-    fn from_commitment(commitment: impl Borrow<Self::Commitment>) -> Self;
+        pos: impl Borrow<Self::Index>,
+        element: impl Borrow<Self::Element>,
+        proof: impl Borrow<Self::MembershipProof>,
+    ) -> Result<(), MerkleTreeError>;
+    fn from_commitment(commitment: impl Borrow<Self::Commitment>) -> Self;
 }
Expand description

Merkle tree that allows forget/remember elements from the memory

Required Methods§

source

fn forget( &mut self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<Self::Element, Self::MembershipProof, ()>

Trim the leaf at position i from memory, if present. + pos: impl Borrow<Self::Index>, +) -> LookupResult<Self::Element, Self::MembershipProof, ()>

Trim the leaf at position i from memory, if present. Should not trim if position i is the last inserted leaf position. Return is identical to result if get_leaf(pos) were called before this call.

source

fn remember( &mut self, - pos: impl Borrow<Self::Index>, - element: impl Borrow<Self::Element>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” a leaf into the tree using its proof. + pos: impl Borrow<Self::Index>, + element: impl Borrow<Self::Element>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<(), MerkleTreeError>

“Re-insert” a leaf into the tree using its proof. Returns Ok(()) if insertion is successful, or Err(err) if the proof disagrees with the merkle tree

-
source

fn from_commitment(commitment: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. +

source

fn from_commitment(commitment: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. Return a tree which is entirely forgotten.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

source§

impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, diff --git a/jf_merkle_tree/trait.ForgetableUniversalMerkleTreeScheme.html b/jf_merkle_tree/trait.ForgetableUniversalMerkleTreeScheme.html index 55d285559..5035227f5 100644 --- a/jf_merkle_tree/trait.ForgetableUniversalMerkleTreeScheme.html +++ b/jf_merkle_tree/trait.ForgetableUniversalMerkleTreeScheme.html @@ -1,4 +1,4 @@ -ForgetableUniversalMerkleTreeScheme in jf_merkle_tree - Rust
pub trait ForgetableUniversalMerkleTreeScheme: ForgetableMerkleTreeScheme + UniversalMerkleTreeScheme {
+ForgetableUniversalMerkleTreeScheme in jf_merkle_tree - Rust
pub trait ForgetableUniversalMerkleTreeScheme: ForgetableMerkleTreeScheme + UniversalMerkleTreeScheme {
     // Required methods
     fn universal_forget(
         &mut self,
@@ -7,8 +7,8 @@
     fn non_membership_remember(
         &mut self,
         pos: Self::Index,
-        proof: impl Borrow<Self::NonMembershipProof>,
-    ) -> Result<(), MerkleTreeError>;
+        proof: impl Borrow<Self::NonMembershipProof>,
+    ) -> Result<(), MerkleTreeError>;
 }
Expand description

Universal Merkle tree that allows forget/remember elements from the memory

Required Methods§

source

fn universal_forget( &mut self, @@ -32,11 +32,11 @@

source

fn non_membership_remember( &mut self, pos: Self::Index, - proof: impl Borrow<Self::NonMembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” an empty leaf into the tree using its proof.

+ proof: impl Borrow<Self::NonMembershipProof>, +) -> Result<(), MerkleTreeError>

“Re-insert” an empty leaf into the tree using its proof.

Returns Ok(()) if insertion is successful, or Err(err) if the proof disagrees with the merkle tree

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, diff --git a/jf_merkle_tree/trait.Index.html b/jf_merkle_tree/trait.Index.html index afff5c7dc..1dade44c4 100644 --- a/jf_merkle_tree/trait.Index.html +++ b/jf_merkle_tree/trait.Index.html @@ -1,2 +1,2 @@ -Index in jf_merkle_tree - Rust

Trait jf_merkle_tree::Index

source ·
pub trait Index: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone { }
Expand description

An index type of a leaf in a Merkle tree.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone> Index for T

\ No newline at end of file +Index in jf_merkle_tree - Rust

Trait jf_merkle_tree::Index

source ·
pub trait Index: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone { }
Expand description

An index type of a leaf in a Merkle tree.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: Debug + Eq + PartialEq + Hash + Ord + PartialOrd + Clone> Index for T

\ No newline at end of file diff --git a/jf_merkle_tree/trait.MerkleCommitment.html b/jf_merkle_tree/trait.MerkleCommitment.html index 270473e46..49670a9a2 100644 --- a/jf_merkle_tree/trait.MerkleCommitment.html +++ b/jf_merkle_tree/trait.MerkleCommitment.html @@ -1,10 +1,10 @@ -MerkleCommitment in jf_merkle_tree - Rust

Trait jf_merkle_tree::MerkleCommitment

source ·
pub trait MerkleCommitment<T: NodeValue>: Eq + PartialEq + Hash + Ord + PartialOrd + Clone + Copy + Serialize + for<'a> Deserialize<'a> + CanonicalDeserialize + CanonicalSerialize {
+MerkleCommitment in jf_merkle_tree - Rust

Trait jf_merkle_tree::MerkleCommitment

source ·
pub trait MerkleCommitment<T: NodeValue>: Eq + PartialEq + Hash + Ord + PartialOrd + Clone + Copy + Serialize + for<'a> Deserialize<'a> + CanonicalDeserialize + CanonicalSerialize {
     // Required methods
     fn digest(&self) -> T;
-    fn height(&self) -> usize;
-    fn size(&self) -> u64;
+    fn height(&self) -> usize;
+    fn size(&self) -> u64;
 }
Expand description

Trait for a succinct merkle tree commitment

Required Methods§

source

fn digest(&self) -> T

Return a digest of the tree

-
source

fn height(&self) -> usize

Return the height of the tree

-
source

fn size(&self) -> u64

Return the number of elements included in the accumulator/tree

-

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file +
source

fn height(&self) -> usize

Return the height of the tree

+
source

fn size(&self) -> u64

Return the number of elements included in the accumulator/tree

+

Object Safety§

This trait is not object safe.

Implementors§

\ No newline at end of file diff --git a/jf_merkle_tree/trait.MerkleTreeScheme.html b/jf_merkle_tree/trait.MerkleTreeScheme.html index 82fb5e1c9..24b74c021 100644 --- a/jf_merkle_tree/trait.MerkleTreeScheme.html +++ b/jf_merkle_tree/trait.MerkleTreeScheme.html @@ -1,27 +1,27 @@ -MerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::MerkleTreeScheme

source ·
pub trait MerkleTreeScheme: Sized {
+MerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::MerkleTreeScheme

source ·
pub trait MerkleTreeScheme: Sized {
     type Element: Element;
     type Index: Index;
     type NodeValue: NodeValue;
-    type MembershipProof: Clone + Eq + Hash;
-    type BatchMembershipProof: Clone;
+    type MembershipProof: Clone + Eq + Hash;
+    type BatchMembershipProof: Clone;
     type Commitment: MerkleCommitment<Self::NodeValue>;
 
-    const ARITY: usize;
+    const ARITY: usize;
 
     // Required methods
-    fn height(&self) -> usize;
+    fn height(&self) -> usize;
     fn capacity(&self) -> BigUint;
-    fn num_leaves(&self) -> u64;
+    fn num_leaves(&self) -> u64;
     fn commitment(&self) -> Self::Commitment;
     fn lookup(
         &self,
-        pos: impl Borrow<Self::Index>,
-    ) -> LookupResult<&Self::Element, Self::MembershipProof, ()>;
+        pos: impl Borrow<Self::Index>,
+    ) -> LookupResult<&Self::Element, Self::MembershipProof, ()>;
     fn verify(
-        root: impl Borrow<Self::NodeValue>,
-        pos: impl Borrow<Self::Index>,
-        proof: impl Borrow<Self::MembershipProof>,
-    ) -> Result<Result<(), ()>, MerkleTreeError>;
+        root: impl Borrow<Self::NodeValue>,
+        pos: impl Borrow<Self::Index>,
+        proof: impl Borrow<Self::MembershipProof>,
+    ) -> Result<Result<(), ()>, MerkleTreeError>;
     fn iter(
         &self,
     ) -> MerkleTreeIter<'_, Self::Element, Self::Index, Self::NodeValue>;
@@ -31,18 +31,18 @@
 

Required Associated Types§

source

type Element: Element

Merkle tree element type

source

type Index: Index

Index type for this merkle tree

source

type NodeValue: NodeValue

Internal and root node value

-
source

type MembershipProof: Clone + Eq + Hash

Merkle proof

-
source

type BatchMembershipProof: Clone

Batch proof

+
source

type MembershipProof: Clone + Eq + Hash

Merkle proof

+
source

type BatchMembershipProof: Clone

Batch proof

source

type Commitment: MerkleCommitment<Self::NodeValue>

Merkle tree commitment

-

Required Associated Constants§

source

const ARITY: usize

Tree ARITY

-

Required Methods§

source

fn height(&self) -> usize

Return the height of this merkle tree

+

Required Associated Constants§

source

const ARITY: usize

Tree ARITY

+

Required Methods§

source

fn height(&self) -> usize

Return the height of this merkle tree

source

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves

-
source

fn num_leaves(&self) -> u64

Return the current number of leaves

+
source

fn num_leaves(&self) -> u64

Return the current number of leaves

source

fn commitment(&self) -> Self::Commitment

Return a merkle commitment

source

fn lookup( &self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position

+ pos: impl Borrow<Self::Index>, +) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position

  • pos - zero-based index of the leaf in the tree
  • returns - Leaf value at the position along with a proof. @@ -50,10 +50,10 @@ LookupResult::NotInMemory if the leaf position has been forgotten.
source

fn verify( - root: impl Borrow<Self::NodeValue>, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof

+ root: impl Borrow<Self::NodeValue>, + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof

  • root - a merkle tree root, usually obtained from Self::commitment().digest()
  • @@ -66,20 +66,20 @@ &self, ) -> MerkleTreeIter<'_, Self::Element, Self::Index, Self::NodeValue>

    Return an iterator that iterates through all element that are not forgetton

    -

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, const ARITY: usize, N, T> MerkleTreeScheme for NMT<E, H, ARITY, N, T>
where - H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, + T: NodeValue,

§

type Element = E

§

type Index = I

§

type NodeValue = T

§

type MembershipProof = MerkleProof<E, I, T, ARITY>

§

type BatchMembershipProof = ()

§

type Commitment = MerkleTreeCommitment<T>

source§

const ARITY: usize = ARITY

source§

impl<E, H, const ARITY: usize, N, T> MerkleTreeScheme for NMT<E, H, ARITY, N, T>
where + H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>, E: Element + Namespaced<Namespace = N>, T: NodeValue, - N: Namespace,

§

type Element = E

§

type Index = u64

§

type NodeValue = NamespacedHash<T, N>

§

type MembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::MembershipProof

§

type BatchMembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::BatchMembershipProof

source§

const ARITY: usize = <InnerTree<E, H, T, N, ARITY> as MerkleTreeScheme>::ARITY

§

type Commitment = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::Commitment

\ No newline at end of file + N: Namespace,
§

type Element = E

§

type Index = u64

§

type NodeValue = NamespacedHash<T, N>

§

type MembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::MembershipProof

§

type BatchMembershipProof = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::BatchMembershipProof

source§

const ARITY: usize = <InnerTree<E, H, T, N, ARITY> as MerkleTreeScheme>::ARITY

§

type Commitment = <MerkleTree<E, NamespacedHasher<H, E, u64, T, N>, u64, ARITY, NamespacedHash<T, N>> as MerkleTreeScheme>::Commitment

\ No newline at end of file diff --git a/jf_merkle_tree/trait.NodeValue.html b/jf_merkle_tree/trait.NodeValue.html index 0d7b9fab0..6a96d334d 100644 --- a/jf_merkle_tree/trait.NodeValue.html +++ b/jf_merkle_tree/trait.NodeValue.html @@ -1,3 +1,3 @@ -NodeValue in jf_merkle_tree - Rust

Trait jf_merkle_tree::NodeValue

source ·
pub trait NodeValue: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize { }
Expand description

An internal node value type in a Merkle tree.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> NodeValue for T
where - T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file +NodeValue in jf_merkle_tree - Rust

Trait jf_merkle_tree::NodeValue

source ·
pub trait NodeValue: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize { }
Expand description

An internal node value type in a Merkle tree.

+

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T> NodeValue for T
where + T: Default + Eq + PartialEq + Hash + Ord + PartialOrd + Copy + Clone + Debug + CanonicalSerialize + CanonicalDeserialize,

\ No newline at end of file diff --git a/jf_merkle_tree/trait.PersistentUniversalMerkleTreeScheme.html b/jf_merkle_tree/trait.PersistentUniversalMerkleTreeScheme.html index baa2f2f25..0c584736a 100644 --- a/jf_merkle_tree/trait.PersistentUniversalMerkleTreeScheme.html +++ b/jf_merkle_tree/trait.PersistentUniversalMerkleTreeScheme.html @@ -1,45 +1,45 @@ -PersistentUniversalMerkleTreeScheme in jf_merkle_tree - Rust
pub trait PersistentUniversalMerkleTreeScheme: UniversalMerkleTreeScheme {
+PersistentUniversalMerkleTreeScheme in jf_merkle_tree - Rust
pub trait PersistentUniversalMerkleTreeScheme: UniversalMerkleTreeScheme {
     // Required method
     fn persistent_update_with<F>(
         &self,
-        pos: impl Borrow<Self::Index>,
+        pos: impl Borrow<Self::Index>,
         f: F,
-    ) -> Result<Self, MerkleTreeError>
-       where F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>;
+    ) -> Result<Self, MerkleTreeError>
+       where F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>;
 
     // Provided methods
     fn persistent_update(
         &self,
-        pos: impl Borrow<Self::Index>,
-        elem: impl Borrow<Self::Element>,
-    ) -> Result<Self, MerkleTreeError> { ... }
+        pos: impl Borrow<Self::Index>,
+        elem: impl Borrow<Self::Element>,
+    ) -> Result<Self, MerkleTreeError> { ... }
     fn persistent_remove(
         &self,
         pos: Self::Index,
-    ) -> Result<Self, MerkleTreeError> { ... }
+    ) -> Result<Self, MerkleTreeError> { ... }
 }
Expand description

A universal merkle tree that allows non destructive updates. A non destructive update doesn’t directly modify the existing content, it creates a new copy about the update so that people could access both the old version and the new.

Required Methods§

source

fn persistent_update_with<F>( &self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, f: F, -) -> Result<Self, MerkleTreeError>
where - F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

A persistent update_with interface, check +) -> Result<Self, MerkleTreeError>

where + F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

A persistent update_with interface, check PersistentUniversalMerkleTreeScheme and UniversalMerkleTreeScheme::update_with.

Provided Methods§

source

fn persistent_update( &self, - pos: impl Borrow<Self::Index>, - elem: impl Borrow<Self::Element>, -) -> Result<Self, MerkleTreeError>

A non destructive update interface, check + pos: impl Borrow<Self::Index>, + elem: impl Borrow<Self::Element>, +) -> Result<Self, MerkleTreeError>

A non destructive update interface, check PersistentUniversalMerkleTreeScheme and UniversalMerkleTreeScheme::update.

-
source

fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

A persistent remove interface, check +

source

fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, diff --git a/jf_merkle_tree/trait.ToTraversalPath.html b/jf_merkle_tree/trait.ToTraversalPath.html index c3bd45e7a..81583de35 100644 --- a/jf_merkle_tree/trait.ToTraversalPath.html +++ b/jf_merkle_tree/trait.ToTraversalPath.html @@ -1,7 +1,7 @@ -ToTraversalPath in jf_merkle_tree - Rust

Trait jf_merkle_tree::ToTraversalPath

source ·
pub trait ToTraversalPath<const ARITY: usize> {
+ToTraversalPath in jf_merkle_tree - Rust

Trait jf_merkle_tree::ToTraversalPath

source ·
pub trait ToTraversalPath<const ARITY: usize> {
     // Required method
-    fn to_traversal_path(&self, height: usize) -> Vec<usize>;
+    fn to_traversal_path(&self, height: usize) -> Vec<usize>;
 }
Expand description

An trait for Merkle tree index type.

-

Required Methods§

source

fn to_traversal_path(&self, height: usize) -> Vec<usize>

Convert the given index to a vector of branch indices given tree height +

Required Methods§

source

fn to_traversal_path(&self, height: usize) -> Vec<usize>

Convert the given index to a vector of branch indices given tree height and ARITY.

-

Implementations on Foreign Types§

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u8

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u16

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u32

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u64

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u128

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for usize

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for BigUint

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

Implementors§

\ No newline at end of file +

Implementations on Foreign Types§

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u8

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u16

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u32

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u64

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for u128

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for usize

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for BigUint

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fq

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

source§

impl<const ARITY: usize> ToTraversalPath<ARITY> for Fr

source§

fn to_traversal_path(&self, height: usize) -> Vec<usize>

Implementors§

\ No newline at end of file diff --git a/jf_merkle_tree/trait.UniversalMerkleTreeScheme.html b/jf_merkle_tree/trait.UniversalMerkleTreeScheme.html index 46e3042a5..972bb27af 100644 --- a/jf_merkle_tree/trait.UniversalMerkleTreeScheme.html +++ b/jf_merkle_tree/trait.UniversalMerkleTreeScheme.html @@ -1,34 +1,34 @@ -UniversalMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::UniversalMerkleTreeScheme

source ·
pub trait UniversalMerkleTreeScheme: MerkleTreeScheme {
+UniversalMerkleTreeScheme in jf_merkle_tree - Rust

Trait jf_merkle_tree::UniversalMerkleTreeScheme

source ·
pub trait UniversalMerkleTreeScheme: MerkleTreeScheme {
     type NonMembershipProof;
     type BatchNonMembershipProof;
 
     // Required methods
     fn update_with<F>(
         &mut self,
-        pos: impl Borrow<Self::Index>,
+        pos: impl Borrow<Self::Index>,
         f: F,
-    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>
-       where F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>;
+    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>
+       where F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>;
     fn universal_lookup(
         &self,
-        pos: impl Borrow<Self::Index>,
+        pos: impl Borrow<Self::Index>,
     ) -> LookupResult<&Self::Element, Self::MembershipProof, Self::NonMembershipProof>;
     fn non_membership_verify(
         &self,
-        pos: impl Borrow<Self::Index>,
-        proof: impl Borrow<Self::NonMembershipProof>,
-    ) -> Result<bool, MerkleTreeError>;
+        pos: impl Borrow<Self::Index>,
+        proof: impl Borrow<Self::NonMembershipProof>,
+    ) -> Result<bool, MerkleTreeError>;
 
     // Provided methods
     fn update(
         &mut self,
-        pos: impl Borrow<Self::Index>,
-        elem: impl Borrow<Self::Element>,
-    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError> { ... }
+        pos: impl Borrow<Self::Index>,
+        elem: impl Borrow<Self::Element>,
+    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError> { ... }
     fn remove(
         &mut self,
-        pos: impl Borrow<Self::Index>,
-    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError> { ... }
+        pos: impl Borrow<Self::Index>,
+    ) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError> { ... }
 }
Expand description

A universal merkle tree is abstracted as a random-access array or a key-value map. It allows manipulation at any given position, and has ability to generate/verify a non-membership proof.

@@ -36,10 +36,10 @@
source

type BatchNonMembershipProof

Batch non membership proof

Required Methods§

source

fn update_with<F>( &mut self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, f: F, -) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>
where - F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

Apply an update function f at a given position

+) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>
where + F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

Apply an update function f at a given position

  • pos - zero-based index of the leaf in the tree
  • f - the update function, None means the given leaf doesn’t exist @@ -53,7 +53,7 @@
    §Example
    });
source

fn universal_lookup( &self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, ) -> LookupResult<&Self::Element, Self::MembershipProof, Self::NonMembershipProof>

Returns the leaf value given a position

  • pos - zero-based index of the leaf in the tree
  • @@ -64,9 +64,9 @@
    §Example
source

fn non_membership_verify( &self, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::NonMembershipProof>, -) -> Result<bool, MerkleTreeError>

Verify an index is not in this merkle tree

+ pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::NonMembershipProof>, +) -> Result<bool, MerkleTreeError>

Verify an index is not in this merkle tree

  • pos - zero-based index of the leaf in the tree
  • proof - a merkle tree proof
  • @@ -75,9 +75,9 @@
    §Example

Provided Methods§

source

fn update( &mut self, - pos: impl Borrow<Self::Index>, - elem: impl Borrow<Self::Element>, -) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Update the leaf value at a given position

+ pos: impl Borrow<Self::Index>, + elem: impl Borrow<Self::Element>, +) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Update the leaf value at a given position

  • pos - zero-based index of the leaf in the tree
  • elem - newly updated element
  • @@ -86,15 +86,15 @@
    §Example
source

fn remove( &mut self, - pos: impl Borrow<Self::Index>, -) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Remove a leaf at the given position

+ pos: impl Borrow<Self::Index>, +) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Remove a leaf at the given position

  • pos - zero-based index of the leaf in the tree
  • returns - Err() if any error occurs internally. Ok(result) if the update is success or the given leaf is not in memory.
-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

\ No newline at end of file + T: NodeValue, \ No newline at end of file diff --git a/jf_merkle_tree/universal_merkle_tree/index.html b/jf_merkle_tree/universal_merkle_tree/index.html index 346652fe8..05d4a7c57 100644 --- a/jf_merkle_tree/universal_merkle_tree/index.html +++ b/jf_merkle_tree/universal_merkle_tree/index.html @@ -1,2 +1,2 @@ -jf_merkle_tree::universal_merkle_tree - Rust

Module jf_merkle_tree::universal_merkle_tree

source ·
Expand description

Implementation of a typical Sparse Merkle Tree.

+jf_merkle_tree::universal_merkle_tree - Rust

Module jf_merkle_tree::universal_merkle_tree

source ·
Expand description

Implementation of a typical Sparse Merkle Tree.

Structs§

\ No newline at end of file diff --git a/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.html b/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.html index bf78954b5..d7a46ad3e 100644 --- a/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.html +++ b/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.html @@ -1,56 +1,56 @@ -UniversalMerkleTree in jf_merkle_tree::universal_merkle_tree - Rust
pub struct UniversalMerkleTree<E, H, I, const ARITY: usize, T>
where +UniversalMerkleTree in jf_merkle_tree::universal_merkle_tree - Rust
pub struct UniversalMerkleTree<E, H, I, const ARITY: usize, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, T: NodeValue,
{ /* private fields */ }
Expand description

A standard append only Merkle tree implementation

-

Implementations§

source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTree<E, H, I, ARITY, T>
where +

Implementations§

source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source

pub fn new(height: usize) -> Self

Initialize an empty Merkle tree.

+ T: NodeValue,
source

pub fn new(height: usize) -> Self

Initialize an empty Merkle tree.

source

pub fn from_kv_set<BI, BE>( - height: usize, - data: impl IntoIterator<Item = impl Borrow<(BI, BE)>>, -) -> Result<Self, MerkleTreeError>
where - BI: Borrow<I>, - BE: Borrow<E>,

Build a universal merkle tree from a key-value set.

+ height: usize, + data: impl IntoIterator<Item = impl Borrow<(BI, BE)>>, +) -> Result<Self, MerkleTreeError>
where + BI: Borrow<I>, + BE: Borrow<E>,

Build a universal merkle tree from a key-value set.

  • height - height of the merkle tree
  • data - an iterator of key-value pairs. Could be a hashmap or simply an array or a slice of (key, value) pairs
-

Trait Implementations§

source§

impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
where - E: Element + Clone, - H: DigestAlgorithm<E, I, T> + Clone, - I: Index + Clone, - T: NodeValue + Clone,

source§

fn clone(&self) -> UniversalMerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
where - E: Element + Debug, - H: DigestAlgorithm<E, I, T> + Debug, - I: Index + Debug, - T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
where +

Trait Implementations§

source§

impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
where + E: Element + Clone, + H: DigestAlgorithm<E, I, T> + Clone, + I: Index + Clone, + T: NodeValue + Clone,

source§

fn clone(&self) -> UniversalMerkleTree<E, H, I, ARITY, T>

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<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
where + E: Element + Debug, + H: DigestAlgorithm<E, I, T> + Debug, + I: Index + Debug, + T: NodeValue + Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

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<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. + T: NodeValue,
source§

fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

Rebuild a merkle tree from a commitment. Return a tree which is entirely forgotten.
source§

fn forget( &mut self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<Self::Element, Self::MembershipProof, ()>

Trim the leaf at position i from memory, if present. + pos: impl Borrow<Self::Index>, +) -> LookupResult<Self::Element, Self::MembershipProof, ()>
Trim the leaf at position i from memory, if present. Should not trim if position i is the last inserted leaf position. Return is identical to result if get_leaf(pos) were called before this call.
source§

fn remember( &mut self, - pos: impl Borrow<Self::Index>, - element: impl Borrow<Self::Element>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” a leaf into the tree using its proof. + pos: impl Borrow<Self::Index>, + element: impl Borrow<Self::Element>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<(), MerkleTreeError>
“Re-insert” a leaf into the tree using its proof. Returns Ok(()) if insertion is successful, or Err(err) if the -proof disagrees with the merkle tree
source§

impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where +proof disagrees with the merkle tree

source§

impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, @@ -61,142 +61,143 @@

source§

fn non_membership_remember( &mut self, pos: Self::Index, - proof: impl Borrow<Self::NonMembershipProof>, -) -> Result<(), MerkleTreeError>

“Re-insert” an empty leaf into the tree using its proof. Read more
source§

impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
where - E: Element + Hash, - H: DigestAlgorithm<E, I, T> + Hash, - I: Index + Hash, - T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a UniversalMerkleTree<E, H, I, ARITY, T>
where + proof: impl Borrow<Self::NonMembershipProof>, +) -> Result<(), MerkleTreeError>

“Re-insert” an empty leaf into the tree using its proof. Read more
source§

impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
where + E: Element + Hash, + H: DigestAlgorithm<E, I, T> + Hash, + I: Index + Hash, + T: NodeValue + Hash,

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<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (&'a I, &'a E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIter<'a, E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

§

type Item = (I, E)

The type of the elements being iterated over.
§

type IntoIter = MerkleTreeIntoIter<E, I, T>

Which kind of iterator are we turning this into?
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( + T: NodeValue,

§

type Element = E

Merkle tree element type
§

type Index = I

Index type for this merkle tree
§

type NodeValue = T

Internal and root node value
§

type MembershipProof = MerkleProof<E, I, T, ARITY>

Merkle proof
§

type BatchMembershipProof = ()

Batch proof
§

type Commitment = MerkleTreeCommitment<T>

Merkle tree commitment
source§

const ARITY: usize = ARITY

Tree ARITY
source§

fn height(&self) -> usize

Return the height of this merkle tree
source§

fn capacity(&self) -> BigUint

Return the maximum allowed number leaves
source§

fn num_leaves(&self) -> u64

Return the current number of leaves
source§

fn commitment(&self) -> Self::Commitment

Return a merkle commitment
source§

fn lookup( &self, - pos: impl Borrow<Self::Index>, -) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( - root: impl Borrow<Self::NodeValue>, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::MembershipProof>, -) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not -forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
where - E: Element + PartialEq, - H: DigestAlgorithm<E, I, T> + PartialEq, - I: Index + PartialEq, - T: NodeValue + PartialEq,

source§

fn eq(&self, other: &UniversalMerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + pos: impl Borrow<Self::Index>, +) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

Returns the leaf value given a position Read more
source§

fn verify( + root: impl Borrow<Self::NodeValue>, + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::MembershipProof>, +) -> Result<Result<(), ()>, MerkleTreeError>

Verify an element is a leaf of a Merkle tree given the proof Read more
source§

fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

Return an iterator that iterates through all element that are not +forgetton
source§

impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
where + E: Element + PartialEq, + H: DigestAlgorithm<E, I, T> + PartialEq, + I: Index + PartialEq, + T: NodeValue + PartialEq,

source§

fn eq(&self, other: &UniversalMerkleTree<E, H, I, ARITY, T>) -> 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<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, T: NodeValue,

source§

fn persistent_update_with<F>( &self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, f: F, -) -> Result<Self, MerkleTreeError>
where - F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

A persistent update_with interface, check +) -> Result<Self, MerkleTreeError>
where + F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,
source§

fn persistent_update( &self, - pos: impl Borrow<Self::Index>, - elem: impl Borrow<Self::Element>, -) -> Result<Self, MerkleTreeError>

A non destructive update interface, check + pos: impl Borrow<Self::Index>, + elem: impl Borrow<Self::Element>, +) -> Result<Self, MerkleTreeError>
A non destructive update interface, check PersistentUniversalMerkleTreeScheme and -UniversalMerkleTreeScheme::update.
source§

fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

A persistent remove interface, check +UniversalMerkleTreeScheme::update.
source§

fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

source§

impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>

source§

impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element + CanonicalSerialize + CanonicalDeserialize, H: DigestAlgorithm<E, I, T>, I: Index + CanonicalSerialize + CanonicalDeserialize, - T: NodeValue,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where + T: NodeValue,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index + ToTraversalPath<ARITY>, - T: NodeValue,

§

type NonMembershipProof = MerkleProof<E, I, T, ARITY>

Non membership proof for a given index
§

type BatchNonMembershipProof = ()

Batch non membership proof
source§

fn update_with<F>( + T: NodeValue,

§

type NonMembershipProof = MerkleProof<E, I, T, ARITY>

Non membership proof for a given index
§

type BatchNonMembershipProof = ()

Batch non membership proof
source§

fn update_with<F>( &mut self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, f: F, -) -> Result<LookupResult<E, (), ()>, MerkleTreeError>
where - F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

Apply an update function f at a given position Read more
source§

fn non_membership_verify( +) -> Result<LookupResult<E, (), ()>, MerkleTreeError>
where + F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

Apply an update function f at a given position Read more
source§

fn non_membership_verify( &self, - pos: impl Borrow<Self::Index>, - proof: impl Borrow<Self::NonMembershipProof>, -) -> Result<bool, MerkleTreeError>

Verify an index is not in this merkle tree Read more
source§

fn universal_lookup( + pos: impl Borrow<Self::Index>, + proof: impl Borrow<Self::NonMembershipProof>, +) -> Result<bool, MerkleTreeError>

Verify an index is not in this merkle tree Read more
source§

fn universal_lookup( &self, - pos: impl Borrow<Self::Index>, + pos: impl Borrow<Self::Index>, ) -> LookupResult<&Self::Element, Self::MembershipProof, Self::NonMembershipProof>

Returns the leaf value given a position Read more
source§

fn update( &mut self, - pos: impl Borrow<Self::Index>, - elem: impl Borrow<Self::Element>, -) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Update the leaf value at a given position Read more
source§

fn remove( + pos: impl Borrow<Self::Index>, + elem: impl Borrow<Self::Element>, +) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Update the leaf value at a given position Read more
source§

fn remove( &mut self, - pos: impl Borrow<Self::Index>, -) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Remove a leaf at the given position Read more
source§

impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
where - E: Element + Eq, - H: DigestAlgorithm<E, I, T> + Eq, - I: Index + Eq, - T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
where + pos: impl Borrow<Self::Index>, +) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

Remove a leaf at the given position Read more
source§

impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
where + E: Element + Eq, + H: DigestAlgorithm<E, I, T> + Eq, + I: Index + Eq, + T: NodeValue + Eq,

source§

impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
where E: Element, H: DigestAlgorithm<E, I, T>, I: Index, - T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for UniversalMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for UniversalMerkleTree<E, H, I, ARITY, T>
where - H: Send, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for UniversalMerkleTree<E, H, I, ARITY, T>
where - H: Sync, - I: Sync + Send, - E: Sync + Send, - T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for UniversalMerkleTree<E, H, I, ARITY, T>
where - H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>
where - H: UnwindSafe, - T: RefUnwindSafe, - I: RefUnwindSafe, - E: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + T: NodeValue,

Auto Trait Implementations§

§

impl<E, H, I, const ARITY: usize, T> Freeze for UniversalMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>

§

impl<E, H, I, const ARITY: usize, T> Send for UniversalMerkleTree<E, H, I, ARITY, T>
where + H: Send, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Sync for UniversalMerkleTree<E, H, I, ARITY, T>
where + H: Sync, + I: Sync + Send, + E: Sync + Send, + T: Send,

§

impl<E, H, I, const ARITY: usize, T> Unpin for UniversalMerkleTree<E, H, I, ARITY, T>
where + H: Unpin,

§

impl<E, H, I, const ARITY: usize, T> UnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>
where + H: UnwindSafe, + T: RefUnwindSafe, + I: RefUnwindSafe, + E: RefUnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where - T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

source§

impl<T> Element for T
where + T: Clone + Eq + PartialEq + Hash,

\ No newline at end of file diff --git a/jf_pcs/all.html b/jf_pcs/all.html index 3b3a541a0..584ca7f26 100644 --- a/jf_pcs/all.html +++ b/jf_pcs/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/jf_pcs/errors/enum.PCSError.html b/jf_pcs/errors/enum.PCSError.html index e78e23ca1..856fe36f4 100644 --- a/jf_pcs/errors/enum.PCSError.html +++ b/jf_pcs/errors/enum.PCSError.html @@ -1,39 +1,39 @@ -PCSError in jf_pcs::errors - Rust

Enum jf_pcs::errors::PCSError

source ·
pub enum PCSError {
-    InvalidProver(String),
-    InvalidVerifier(String),
-    InvalidProof(String),
-    InvalidParameters(String),
+PCSError in jf_pcs::errors - Rust

Enum jf_pcs::errors::PCSError

source ·
pub enum PCSError {
+    InvalidProver(String),
+    InvalidVerifier(String),
+    InvalidProof(String),
+    InvalidParameters(String),
     SerializationError(SerializationError),
     TranscriptError(TranscriptError),
-    UpstreamError(String),
+    UpstreamError(String),
 }
Expand description

A enum specifying the possible failure modes of the PCS.

-

Variants§

§

InvalidProver(String)

Invalid Prover: {0}

-
§

InvalidVerifier(String)

Invalid Verifier: {0}

-
§

InvalidProof(String)

Invalid Proof: {0}

-
§

InvalidParameters(String)

Invalid parameters: {0}

+

Variants§

§

InvalidProver(String)

Invalid Prover: {0}

+
§

InvalidVerifier(String)

Invalid Verifier: {0}

+
§

InvalidProof(String)

Invalid Proof: {0}

+
§

InvalidParameters(String)

Invalid parameters: {0}

§

SerializationError(SerializationError)

An error during (de)serialization: {0}

§

TranscriptError(TranscriptError)

Transcript error {0}

-
§

UpstreamError(String)

Error from upstream dependencies: {0}

-

Trait Implementations§

source§

impl Debug for PCSError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PCSError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PCSError

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<SerializationError> for PCSError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<TranscriptError> for PCSError

source§

fn from(e: TranscriptError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where - T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method +
§

UpstreamError(String)

Error from upstream dependencies: {0}

+

Trait Implementations§

source§

impl Debug for PCSError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PCSError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PCSError

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<SerializationError> for PCSError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<TranscriptError> for PCSError

source§

fn from(e: TranscriptError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where + T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+receivers.
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/errors/index.html b/jf_pcs/errors/index.html index f4f984870..ff70efa2a 100644 --- a/jf_pcs/errors/index.html +++ b/jf_pcs/errors/index.html @@ -1,2 +1,2 @@ -jf_pcs::errors - Rust

Module jf_pcs::errors

source ·
Expand description

Error module.

+jf_pcs::errors - Rust

Module jf_pcs::errors

source ·
Expand description

Error module.

Enums§

  • A enum specifying the possible failure modes of the PCS.
\ No newline at end of file diff --git a/jf_pcs/fn.checked_fft_size.html b/jf_pcs/fn.checked_fft_size.html index 9f743a4c6..dd0217d48 100644 --- a/jf_pcs/fn.checked_fft_size.html +++ b/jf_pcs/fn.checked_fft_size.html @@ -1,2 +1,2 @@ -checked_fft_size in jf_pcs - Rust

Function jf_pcs::checked_fft_size

source ·
pub fn checked_fft_size(degree: usize) -> Result<usize, PCSError>
Expand description

compute the fft size (i.e. num_coeffs) given a degree.

+checked_fft_size in jf_pcs - Rust

Function jf_pcs::checked_fft_size

source ·
pub fn checked_fft_size(degree: usize) -> Result<usize, PCSError>
Expand description

compute the fft size (i.e. num_coeffs) given a degree.

\ No newline at end of file diff --git a/jf_pcs/index.html b/jf_pcs/index.html index 4ed3785b8..4a57958d6 100644 --- a/jf_pcs/index.html +++ b/jf_pcs/index.html @@ -1,4 +1,4 @@ -jf_pcs - Rust

Crate jf_pcs

source ·
Expand description

Polynomial Commitment Scheme

+jf_pcs - Rust

Crate jf_pcs

source ·
Expand description

Polynomial Commitment Scheme

Re-exports§

Modules§

Traits§

Functions§

\ No newline at end of file diff --git a/jf_pcs/multilinear_kzg/index.html b/jf_pcs/multilinear_kzg/index.html index 961e791ac..c1a2326b6 100644 --- a/jf_pcs/multilinear_kzg/index.html +++ b/jf_pcs/multilinear_kzg/index.html @@ -1,4 +1,4 @@ -jf_pcs::multilinear_kzg - Rust

Module jf_pcs::multilinear_kzg

source ·
Expand description

Main module for multilinear KZG commitment scheme

+jf_pcs::multilinear_kzg - Rust

Module jf_pcs::multilinear_kzg

source ·
Expand description

Main module for multilinear KZG commitment scheme

Structs§

Type Aliases§

-
§q_x_opens: Vec<UnivariateKzgProof<E>>

openings of q(x) at 1, omega, …, and r

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearKzgBatchProof<E>

§q_x_opens: Vec<UnivariateKzgProof<E>>

openings of q(x) at 1, omega, …, and r

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearKzgBatchProof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearKzgBatchProof<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearKzgBatchProof<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearKzgBatchProof<E>

source§

fn clone(&self) -> MultilinearKzgBatchProof<E>

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<E: Debug + Pairing> Debug for MultilinearKzgBatchProof<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgBatchProof<E>

source§

fn eq(&self, other: &MultilinearKzgBatchProof<E>) -> 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<E: Pairing> Valid for MultilinearKzgBatchProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for MultilinearKzgBatchProof<E>

source§

impl<E: Pairing> StructuralPartialEq for MultilinearKzgBatchProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgBatchProof<E>
where - <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearKzgBatchProof<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgBatchProof<E>

§

impl<E> Sync for MultilinearKzgBatchProof<E>

§

impl<E> Unpin for MultilinearKzgBatchProof<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgBatchProof<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearKzgBatchProof<E>

source§

fn clone(&self) -> MultilinearKzgBatchProof<E>

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<E: Debug + Pairing> Debug for MultilinearKzgBatchProof<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgBatchProof<E>

source§

fn eq(&self, other: &MultilinearKzgBatchProof<E>) -> 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<E: Pairing> Valid for MultilinearKzgBatchProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for MultilinearKzgBatchProof<E>

source§

impl<E: Pairing> StructuralPartialEq for MultilinearKzgBatchProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgBatchProof<E>
where + <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearKzgBatchProof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgBatchProof<E>

§

impl<E> Sync for MultilinearKzgBatchProof<E>

§

impl<E> Unpin for MultilinearKzgBatchProof<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgBatchProof<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/multilinear_kzg/struct.MultilinearKzgPCS.html b/jf_pcs/multilinear_kzg/struct.MultilinearKzgPCS.html index c9783ef30..b83b1f88a 100644 --- a/jf_pcs/multilinear_kzg/struct.MultilinearKzgPCS.html +++ b/jf_pcs/multilinear_kzg/struct.MultilinearKzgPCS.html @@ -1,28 +1,28 @@ -MultilinearKzgPCS in jf_pcs::multilinear_kzg - Rust

Struct jf_pcs::multilinear_kzg::MultilinearKzgPCS

source ·
pub struct MultilinearKzgPCS<E: Pairing> { /* private fields */ }
Expand description

KZG Polynomial Commitment Scheme on multilinear polynomials.

+MultilinearKzgPCS in jf_pcs::multilinear_kzg - Rust

Struct jf_pcs::multilinear_kzg::MultilinearKzgPCS

source ·
pub struct MultilinearKzgPCS<E: Pairing> { /* private fields */ }
Expand description

KZG Polynomial Commitment Scheme on multilinear polynomials.

Trait Implementations§

source§

impl<E: Pairing> PolynomialCommitmentScheme for MultilinearKzgPCS<E>

source§

fn trim( - srs: impl Borrow<Self::SRS>, - supported_log_degree: usize, - supported_num_vars: Option<usize>, -) -> Result<(<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam, <(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters. + srs: impl Borrow<Self::SRS>, + supported_log_degree: usize, + supported_num_vars: Option<usize>, +) -> Result<(<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam, <(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters. Input both supported_log_degree for univariate and supported_num_vars for multilinear.

source§

fn commit( - prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, poly: &Self::Polynomial, -) -> Result<Self::Commitment, PCSError>

Generate a commitment for a polynomial.

+) -> Result<Self::Commitment, PCSError>

Generate a commitment for a polynomial.

This function takes 2^num_vars number of scalar multiplications over G1.

source§

fn batch_commit( - prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, polys: &[Self::Polynomial], -) -> Result<Self::Commitment, PCSError>

Batch commit a list of polynomials.

+) -> Result<Self::Commitment, PCSError>

Batch commit a list of polynomials.

This function takes 2^(num_vars + log(polys.len()) number of scalar multiplications over G1.

source§

fn open( - prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, point: &Self::Point, -) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the +) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the same. This function does not need to take the evaluation value as an input.

This function takes 2^{num_var +1} number of scalar multiplications over @@ -33,11 +33,11 @@ elements.

source§

fn batch_open( - prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<(MultilinearUniversalParams<E>, UnivariateUniversalParams<E>) as StructuredReferenceString>::ProverParam>, batch_commitment: &Self::BatchCommitment, polynomials: &[Self::Polynomial], points: &[Self::Point], -) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input

+) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input

  • the prover parameters for univariate KZG,
  • the prover parameters for multilinear KZG,
  • @@ -76,7 +76,7 @@ point: &Self::Point, value: &E::ScalarField, proof: &Self::Proof, -) -> Result<bool, PCSError>

    Verifies that value is the evaluation at x of the polynomial +) -> Result<bool, PCSError>

    Verifies that value is the evaluation at x of the polynomial committed inside comm.

    This function takes

      @@ -89,8 +89,8 @@ points: &[Self::Point], values: &[E::ScalarField], batch_proof: &Self::BatchProof, - _rng: &mut R, -) -> Result<bool, PCSError>

      Verifies that value is the evaluation at x_i of the polynomial + _rng: &mut R, +) -> Result<bool, PCSError>

      Verifies that value is the evaluation at x_i of the polynomial poly_i committed inside commitment. steps:

        @@ -102,36 +102,36 @@
      1. get a point p := l(r)
      2. verifies p is verifies against proof
      -
§

type SRS = (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

Structured reference string
§

type Polynomial = Arc<DenseMultilinearExtension<<E as Pairing>::ScalarField>>

Polynomial and its associated types
§

type Point = Vec<<E as Pairing>::ScalarField>

Polynomial input domain
§

type Evaluation = <E as Pairing>::ScalarField

Polynomial Evaluation
§

type Commitment = Commitment<E>

Commitments
§

type BatchCommitment = Commitment<E>

Batch commitments
§

type Proof = MultilinearKzgProof<E>

Proofs
§

type BatchProof = MultilinearKzgBatchProof<E>

Batch proofs
source§

fn load_srs_from_file( - supported_degree: usize, - file: Option<&str>, -) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. +
§

type SRS = (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

Structured reference string
§

type Polynomial = Arc<DenseMultilinearExtension<<E as Pairing>::ScalarField>>

Polynomial and its associated types
§

type Point = Vec<<E as Pairing>::ScalarField>

Polynomial input domain
§

type Evaluation = <E as Pairing>::ScalarField

Polynomial Evaluation
§

type Commitment = Commitment<E>

Commitments
§

type BatchCommitment = Commitment<E>

Batch commitments
§

type Proof = MultilinearKzgProof<E>

Proofs
§

type BatchProof = MultilinearKzgBatchProof<E>

Batch proofs
source§

fn load_srs_from_file( + supported_degree: usize, + file: Option<&str>, +) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be implemented else where. We only load them into memory here. Read more
source§

fn multi_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, points: &[Self::Point], -) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Open a single polynomial at multiple points. -The naive default implementation just open them individually.

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgPCS<E>

§

impl<E> RefUnwindSafe for MultilinearKzgPCS<E>
where - E: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgPCS<E>

§

impl<E> Sync for MultilinearKzgPCS<E>

§

impl<E> Unpin for MultilinearKzgPCS<E>
where - E: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgPCS<E>
where - E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>
Open a single polynomial at multiple points. +The naive default implementation just open them individually.

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgPCS<E>

§

impl<E> RefUnwindSafe for MultilinearKzgPCS<E>
where + E: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgPCS<E>

§

impl<E> Sync for MultilinearKzgPCS<E>

§

impl<E> Unpin for MultilinearKzgPCS<E>
where + E: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgPCS<E>
where + E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/multilinear_kzg/struct.MultilinearKzgProof.html b/jf_pcs/multilinear_kzg/struct.MultilinearKzgProof.html index ebc45ef2e..35e242cc7 100644 --- a/jf_pcs/multilinear_kzg/struct.MultilinearKzgProof.html +++ b/jf_pcs/multilinear_kzg/struct.MultilinearKzgProof.html @@ -1,64 +1,65 @@ -MultilinearKzgProof in jf_pcs::multilinear_kzg - Rust

Struct jf_pcs::multilinear_kzg::MultilinearKzgProof

source ·
pub struct MultilinearKzgProof<E: Pairing> {
-    pub proofs: Vec<E::G1Affine>,
+MultilinearKzgProof in jf_pcs::multilinear_kzg - Rust

Struct jf_pcs::multilinear_kzg::MultilinearKzgProof

source ·
pub struct MultilinearKzgProof<E: Pairing> {
+    pub proofs: Vec<E::G1Affine>,
 }
Expand description

proof of opening

-

Fields§

§proofs: Vec<E::G1Affine>

Evaluation of quotients

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearKzgProof<E>

Fields§

§proofs: Vec<E::G1Affine>

Evaluation of quotients

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearKzgProof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearKzgProof<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearKzgProof<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearKzgProof<E>
where - E::G1Affine: Clone,

source§

fn clone(&self) -> MultilinearKzgProof<E>

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<E: Debug + Pairing> Debug for MultilinearKzgProof<E>
where - E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Hash for MultilinearKzgProof<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where - __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for MultilinearKzgProof<E>
where - E::G1Affine: PartialEq,

source§

fn eq(&self, other: &MultilinearKzgProof<E>) -> 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<E: Pairing> Valid for MultilinearKzgProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for MultilinearKzgProof<E>
where - E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for MultilinearKzgProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgProof<E>

§

impl<E> RefUnwindSafe for MultilinearKzgProof<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgProof<E>

§

impl<E> Sync for MultilinearKzgProof<E>

§

impl<E> Unpin for MultilinearKzgProof<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgProof<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearKzgProof<E>
where + E::G1Affine: Clone,

source§

fn clone(&self) -> MultilinearKzgProof<E>

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<E: Debug + Pairing> Debug for MultilinearKzgProof<E>
where + E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Hash for MultilinearKzgProof<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for MultilinearKzgProof<E>
where + E::G1Affine: PartialEq,

source§

fn eq(&self, other: &MultilinearKzgProof<E>) -> 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<E: Pairing> Valid for MultilinearKzgProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for MultilinearKzgProof<E>
where + E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for MultilinearKzgProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearKzgProof<E>

§

impl<E> RefUnwindSafe for MultilinearKzgProof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearKzgProof<E>

§

impl<E> Sync for MultilinearKzgProof<E>

§

impl<E> Unpin for MultilinearKzgProof<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearKzgProof<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/multilinear_kzg/type.MLE.html b/jf_pcs/multilinear_kzg/type.MLE.html index 54f958e8c..3bbfc8432 100644 --- a/jf_pcs/multilinear_kzg/type.MLE.html +++ b/jf_pcs/multilinear_kzg/type.MLE.html @@ -1,4 +1,4 @@ -MLE in jf_pcs::multilinear_kzg - Rust

Type Alias jf_pcs::multilinear_kzg::MLE

source ·
pub type MLE<F> = Arc<DenseMultilinearExtension<F>>;
Expand description

Multi-linear Extension (MLE) polynomial, this type alias is set to owned +MLE in jf_pcs::multilinear_kzg - Rust

Type Alias jf_pcs::multilinear_kzg::MLE

source ·
pub type MLE<F> = Arc<DenseMultilinearExtension<F>>;
Expand description

Multi-linear Extension (MLE) polynomial, this type alias is set to owned DenseMultilinearExtension on wasm platforms since only message-passing concurrency is supported. And set to Arc<DenseMultilinearExtension> for platforms that supports atomic operations (e.g. mostly non-wasm, MIPS, x86 diff --git a/jf_pcs/prelude/fn.get_batched_nv.html b/jf_pcs/prelude/fn.get_batched_nv.html index 728d79795..6b6cba40a 100644 --- a/jf_pcs/prelude/fn.get_batched_nv.html +++ b/jf_pcs/prelude/fn.get_batched_nv.html @@ -1,3 +1,3 @@ -get_batched_nv in jf_pcs::prelude - Rust

Function jf_pcs::prelude::get_batched_nv

source ·
pub fn get_batched_nv(num_var: usize, polynomials_len: usize) -> usize
Expand description

Return the number of variables that one need for an MLE to +get_batched_nv in jf_pcs::prelude - Rust

Function jf_pcs::prelude::get_batched_nv

source ·
pub fn get_batched_nv(num_var: usize, polynomials_len: usize) -> usize
Expand description

Return the number of variables that one need for an MLE to batch the list of MLEs

\ No newline at end of file diff --git a/jf_pcs/prelude/fn.merge_polynomials.html b/jf_pcs/prelude/fn.merge_polynomials.html index da3c1bf96..516befc0b 100644 --- a/jf_pcs/prelude/fn.merge_polynomials.html +++ b/jf_pcs/prelude/fn.merge_polynomials.html @@ -1,5 +1,5 @@ -merge_polynomials in jf_pcs::prelude - Rust

Function jf_pcs::prelude::merge_polynomials

source ·
pub fn merge_polynomials<F: PrimeField>(
+merge_polynomials in jf_pcs::prelude - Rust

Function jf_pcs::prelude::merge_polynomials

source ·
pub fn merge_polynomials<F: PrimeField>(
     polynomials: &[MLE<F>],
-) -> Result<DenseMultilinearExtension<F>, PCSError>
Expand description

merge a set of polynomials. Returns an error if the +) -> Result<DenseMultilinearExtension<F>, PCSError>

Expand description

merge a set of polynomials. Returns an error if the polynomials do not share a same number of nvs.

\ No newline at end of file diff --git a/jf_pcs/prelude/index.html b/jf_pcs/prelude/index.html index 3702453ae..947321ae7 100644 --- a/jf_pcs/prelude/index.html +++ b/jf_pcs/prelude/index.html @@ -1,4 +1,4 @@ -jf_pcs::prelude - Rust

Module jf_pcs::prelude

source ·
Expand description

Prelude

+jf_pcs::prelude - Rust

Module jf_pcs::prelude

source ·
Expand description

Prelude

Re-exports§

Structs§

Functions§

source§

impl<E: Clone + Pairing> Clone for Commitment<E>
where + E::G1Affine: Clone,

source§

fn clone(&self) -> Commitment<E>

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<E: Debug + Pairing> Debug for Commitment<E>
where + E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Default for Commitment<E>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<T, E> From<T> for Commitment<E>
where T: AffineRepr, E: Pairing<G1Affine = T>,

Allow generic creation from AffineRepr

-
source§

fn from(value: T) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> Hash for Commitment<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where - __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for Commitment<E>
where - E::G1Affine: PartialEq,

source§

fn eq(&self, other: &Commitment<E>) -> 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<E: Pairing> Valid for Commitment<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Copy + Pairing> Copy for Commitment<E>
where - E::G1Affine: Copy,

source§

impl<E: Eq + Pairing> Eq for Commitment<E>
where - E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for Commitment<E>

Auto Trait Implementations§

§

impl<E> Freeze for Commitment<E>
where - <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for Commitment<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for Commitment<E>

§

impl<E> Sync for Commitment<E>

§

impl<E> Unpin for Commitment<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for Commitment<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +
source§

fn from(value: T) -> Self

Converts to this type from the input type.

source§

impl<E: Pairing> Hash for Commitment<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for Commitment<E>
where + E::G1Affine: PartialEq,

source§

fn eq(&self, other: &Commitment<E>) -> 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<E: Pairing> Valid for Commitment<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Copy + Pairing> Copy for Commitment<E>
where + E::G1Affine: Copy,

source§

impl<E: Eq + Pairing> Eq for Commitment<E>
where + E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for Commitment<E>

Auto Trait Implementations§

§

impl<E> Freeze for Commitment<E>
where + <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for Commitment<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for Commitment<E>

§

impl<E> Sync for Commitment<E>

§

impl<E> Unpin for Commitment<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for Commitment<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.MultilinearProverParam.html b/jf_pcs/prelude/struct.MultilinearProverParam.html index ad090e15f..36905c9af 100644 --- a/jf_pcs/prelude/struct.MultilinearProverParam.html +++ b/jf_pcs/prelude/struct.MultilinearProverParam.html @@ -1,70 +1,71 @@ -MultilinearProverParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearProverParam

source ·
pub struct MultilinearProverParam<E: Pairing> {
-    pub num_vars: usize,
-    pub powers_of_g: Vec<Evaluations<E::G1Affine>>,
+MultilinearProverParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearProverParam

source ·
pub struct MultilinearProverParam<E: Pairing> {
+    pub num_vars: usize,
+    pub powers_of_g: Vec<Evaluations<E::G1Affine>>,
     pub g: E::G1Affine,
     pub h: E::G2Affine,
 }
Expand description

Prover Config

-

Fields§

§num_vars: usize

number of variables

-
§powers_of_g: Vec<Evaluations<E::G1Affine>>

pp_{0}, pp_{1}, …,pp_{nu_vars} defined +

Fields§

§num_vars: usize

number of variables

+
§powers_of_g: Vec<Evaluations<E::G1Affine>>

pp_{0}, pp_{1}, …,pp_{nu_vars} defined by XZZPD19 where pp_{nv-0}=g and pp_{nv-i}=g^{eq((t_1,..t_i),(X_1,..X_i))}

§g: E::G1Affine

generator for G1

§h: E::G2Affine

generator for G2

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearProverParam<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearProverParam<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearProverParam<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearProverParam<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearProverParam<E>
where - E::G1Affine: Clone, - E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearProverParam<E>

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<E: Debug + Pairing> Debug for MultilinearProverParam<E>
where - E::G1Affine: Debug, - E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Valid for MultilinearProverParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearProverParam<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearProverParam<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearProverParam<E>

§

impl<E> Sync for MultilinearProverParam<E>

§

impl<E> Unpin for MultilinearProverParam<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearProverParam<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearProverParam<E>
where + E::G1Affine: Clone, + E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearProverParam<E>

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<E: Debug + Pairing> Debug for MultilinearProverParam<E>
where + E::G1Affine: Debug, + E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Valid for MultilinearProverParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearProverParam<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearProverParam<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearProverParam<E>

§

impl<E> Sync for MultilinearProverParam<E>

§

impl<E> Unpin for MultilinearProverParam<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearProverParam<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.MultilinearUniversalParams.html b/jf_pcs/prelude/struct.MultilinearUniversalParams.html index db40ba7b5..4c6cae280 100644 --- a/jf_pcs/prelude/struct.MultilinearUniversalParams.html +++ b/jf_pcs/prelude/struct.MultilinearUniversalParams.html @@ -1,85 +1,86 @@ -MultilinearUniversalParams in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearUniversalParams

source ·
pub struct MultilinearUniversalParams<E: Pairing> {
+MultilinearUniversalParams in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearUniversalParams

source ·
pub struct MultilinearUniversalParams<E: Pairing> {
     pub prover_param: MultilinearProverParam<E>,
-    pub h_mask: Vec<E::G2Affine>,
+    pub h_mask: Vec<E::G2Affine>,
 }
Expand description

Universal Parameter

Fields§

§prover_param: MultilinearProverParam<E>

prover parameters

-
§h_mask: Vec<E::G2Affine>

h^randomness: h^t1, h^t2, …, h^{t_nv}

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearUniversalParams<E>

§h_mask: Vec<E::G2Affine>

h^randomness: h^t1, h^t2, …, h^{t_nv}

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearUniversalParams<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearUniversalParams<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearUniversalParams<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearUniversalParams<E>
where - E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearUniversalParams<E>

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<E: Debug + Pairing> Debug for MultilinearUniversalParams<E>
where - E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> StructuredReferenceString for MultilinearUniversalParams<E>

source§

fn extract_prover_param(&self, supported_num_vars: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

+) -> Result<(), SerializationError>
The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearUniversalParams<E>
where + E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearUniversalParams<E>

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<E: Debug + Pairing> Debug for MultilinearUniversalParams<E>
where + E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> StructuredReferenceString for MultilinearUniversalParams<E>

source§

fn extract_prover_param(&self, supported_num_vars: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

source§

fn extract_verifier_param( &self, - supported_num_vars: usize, + supported_num_vars: usize, ) -> Self::VerifierParam

Extract the verifier parameters from the public parameters.

source§

fn trim( &self, - supported_num_vars: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters + supported_num_vars: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters for multilinear polynomials to the given supported_num_vars, and returns committer key and verifier key. supported_num_vars should be in range 1..=params.num_vars

source§

fn trim_with_verifier_degree( &self, - prover_supported_num_vars: usize, - _verifier_supported_num_vars: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Naive implementation

+ prover_supported_num_vars: usize, + _verifier_supported_num_vars: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Naive implementation

§

type ProverParam = MultilinearProverParam<E>

Prover parameters
§

type VerifierParam = MultilinearVerifierParam<E>

Verifier parameters
source§

fn load_srs_from_file( - _supported_degree: usize, - _file: Option<&str>, -) -> Result<Self, PCSError>

Load public parameter in production environment. + _supported_degree: usize, + _file: Option<&str>, +) -> Result<Self, PCSError>
Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be -implemented else where. We only load them into memory here. Read more
source§

impl<E: Pairing> Valid for MultilinearUniversalParams<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearUniversalParams<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearUniversalParams<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearUniversalParams<E>

§

impl<E> Sync for MultilinearUniversalParams<E>

§

impl<E> Unpin for MultilinearUniversalParams<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearUniversalParams<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +implemented else where. We only load them into memory here. Read more

source§

impl<E: Pairing> Valid for MultilinearUniversalParams<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearUniversalParams<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearUniversalParams<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearUniversalParams<E>

§

impl<E> Sync for MultilinearUniversalParams<E>

§

impl<E> Unpin for MultilinearUniversalParams<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearUniversalParams<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.MultilinearVerifierParam.html b/jf_pcs/prelude/struct.MultilinearVerifierParam.html index daccf70e4..d8602eb13 100644 --- a/jf_pcs/prelude/struct.MultilinearVerifierParam.html +++ b/jf_pcs/prelude/struct.MultilinearVerifierParam.html @@ -1,68 +1,69 @@ -MultilinearVerifierParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearVerifierParam

source ·
pub struct MultilinearVerifierParam<E: Pairing> {
-    pub num_vars: usize,
+MultilinearVerifierParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::MultilinearVerifierParam

source ·
pub struct MultilinearVerifierParam<E: Pairing> {
+    pub num_vars: usize,
     pub g: E::G1Affine,
     pub h: E::G2Affine,
-    pub h_mask: Vec<E::G2Affine>,
+    pub h_mask: Vec<E::G2Affine>,
 }
Expand description

Verifier Config

-

Fields§

§num_vars: usize

number of variables

+

Fields§

§num_vars: usize

number of variables

§g: E::G1Affine

generator of G1

§h: E::G2Affine

generator of G2

-
§h_mask: Vec<E::G2Affine>

h^randomness: h^t1, h^t2, …, h^{t_nv}

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearVerifierParam<E>

§h_mask: Vec<E::G2Affine>

h^randomness: h^t1, h^t2, …, h^{t_nv}

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for MultilinearVerifierParam<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearVerifierParam<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for MultilinearVerifierParam<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearVerifierParam<E>
where - E::G1Affine: Clone, - E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearVerifierParam<E>

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<E: Debug + Pairing> Debug for MultilinearVerifierParam<E>
where - E::G1Affine: Debug, - E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Valid for MultilinearVerifierParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearVerifierParam<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearVerifierParam<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearVerifierParam<E>

§

impl<E> Sync for MultilinearVerifierParam<E>

§

impl<E> Unpin for MultilinearVerifierParam<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearVerifierParam<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for MultilinearVerifierParam<E>
where + E::G1Affine: Clone, + E::G2Affine: Clone,

source§

fn clone(&self) -> MultilinearVerifierParam<E>

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<E: Debug + Pairing> Debug for MultilinearVerifierParam<E>
where + E::G1Affine: Debug, + E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Valid for MultilinearVerifierParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

Auto Trait Implementations§

§

impl<E> Freeze for MultilinearVerifierParam<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for MultilinearVerifierParam<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for MultilinearVerifierParam<E>

§

impl<E> Sync for MultilinearVerifierParam<E>

§

impl<E> Unpin for MultilinearVerifierParam<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for MultilinearVerifierParam<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.UnivariateProverParam.html b/jf_pcs/prelude/struct.UnivariateProverParam.html index 5c26428d2..2baa11b28 100644 --- a/jf_pcs/prelude/struct.UnivariateProverParam.html +++ b/jf_pcs/prelude/struct.UnivariateProverParam.html @@ -1,62 +1,63 @@ -UnivariateProverParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateProverParam

source ·
pub struct UnivariateProverParam<E: Pairing> {
-    pub powers_of_g: Vec<E::G1Affine>,
+UnivariateProverParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateProverParam

source ·
pub struct UnivariateProverParam<E: Pairing> {
+    pub powers_of_g: Vec<E::G1Affine>,
 }
Expand description

UnivariateProverParam is used to generate a proof

-

Fields§

§powers_of_g: Vec<E::G1Affine>

Config

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateProverParam<E>

Fields§

§powers_of_g: Vec<E::G1Affine>

Config

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateProverParam<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateProverParam<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateProverParam<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateProverParam<E>
where - E::G1Affine: Clone,

source§

fn clone(&self) -> UnivariateProverParam<E>

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<E: Debug + Pairing> Debug for UnivariateProverParam<E>
where - E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Default + Pairing> Default for UnivariateProverParam<E>
where - E::G1Affine: Default,

source§

fn default() -> UnivariateProverParam<E>

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateProverParam<E>
where - E::G1Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateProverParam<E>) -> 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<E: Pairing> Valid for UnivariateProverParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateProverParam<E>
where - E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateProverParam<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateProverParam<E>

§

impl<E> RefUnwindSafe for UnivariateProverParam<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateProverParam<E>

§

impl<E> Sync for UnivariateProverParam<E>

§

impl<E> Unpin for UnivariateProverParam<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateProverParam<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateProverParam<E>
where + E::G1Affine: Clone,

source§

fn clone(&self) -> UnivariateProverParam<E>

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<E: Debug + Pairing> Debug for UnivariateProverParam<E>
where + E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Default + Pairing> Default for UnivariateProverParam<E>
where + E::G1Affine: Default,

source§

fn default() -> UnivariateProverParam<E>

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateProverParam<E>
where + E::G1Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateProverParam<E>) -> 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<E: Pairing> Valid for UnivariateProverParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateProverParam<E>
where + E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateProverParam<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateProverParam<E>

§

impl<E> RefUnwindSafe for UnivariateProverParam<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateProverParam<E>

§

impl<E> Sync for UnivariateProverParam<E>

§

impl<E> Unpin for UnivariateProverParam<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateProverParam<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.UnivariateUniversalParams.html b/jf_pcs/prelude/struct.UnivariateUniversalParams.html index 386c39a69..229c62bce 100644 --- a/jf_pcs/prelude/struct.UnivariateUniversalParams.html +++ b/jf_pcs/prelude/struct.UnivariateUniversalParams.html @@ -1,103 +1,104 @@ -UnivariateUniversalParams in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateUniversalParams

source ·
pub struct UnivariateUniversalParams<E: Pairing> {
-    pub powers_of_g: Vec<E::G1Affine>,
+UnivariateUniversalParams in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateUniversalParams

source ·
pub struct UnivariateUniversalParams<E: Pairing> {
+    pub powers_of_g: Vec<E::G1Affine>,
     pub h: E::G2Affine,
     pub beta_h: E::G2Affine,
-    pub powers_of_h: Vec<E::G2Affine>,
+    pub powers_of_h: Vec<E::G2Affine>,
 }
Expand description

UniversalParams are the universal parameters for the KZG10 scheme.

-

Fields§

§powers_of_g: Vec<E::G1Affine>

Group elements of the form { \beta^i G }, where i ranges from 0 to +

Fields§

§powers_of_g: Vec<E::G1Affine>

Group elements of the form { \beta^i G }, where i ranges from 0 to degree.

§h: E::G2Affine

TODO: remove h and beta_h The generator of G2.

§beta_h: E::G2Affine

\beta times the above generator of G2.

-
§powers_of_h: Vec<E::G2Affine>

powers of \beta time the generator h of G2

-

Implementations§

source§

impl<E: Pairing> UnivariateUniversalParams<E>

source

pub fn max_degree(&self) -> usize

Returns the maximum supported degree

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateUniversalParams<E>

§powers_of_h: Vec<E::G2Affine>

powers of \beta time the generator h of G2

+

Implementations§

source§

impl<E: Pairing> UnivariateUniversalParams<E>

source

pub fn max_degree(&self) -> usize

Returns the maximum supported degree

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateUniversalParams<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateUniversalParams<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateUniversalParams<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateUniversalParams<E>
where - E::G1Affine: Clone, - E::G2Affine: Clone,

source§

fn clone(&self) -> UnivariateUniversalParams<E>

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<E: Debug + Pairing> Debug for UnivariateUniversalParams<E>
where - E::G1Affine: Debug, - E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Default + Pairing> Default for UnivariateUniversalParams<E>
where - E::G1Affine: Default, - E::G2Affine: Default,

source§

fn default() -> UnivariateUniversalParams<E>

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateUniversalParams<E>
where - E::G1Affine: PartialEq, - E::G2Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateUniversalParams<E>) -> 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<E: Pairing> StructuredReferenceString for UnivariateUniversalParams<E>

source§

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

-
source§

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Extract the verifier parameters from the public parameters.

+) -> Result<(), SerializationError>
The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateUniversalParams<E>
where + E::G1Affine: Clone, + E::G2Affine: Clone,

source§

fn clone(&self) -> UnivariateUniversalParams<E>

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<E: Debug + Pairing> Debug for UnivariateUniversalParams<E>
where + E::G1Affine: Debug, + E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Default + Pairing> Default for UnivariateUniversalParams<E>
where + E::G1Affine: Default, + E::G2Affine: Default,

source§

fn default() -> UnivariateUniversalParams<E>

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateUniversalParams<E>
where + E::G1Affine: PartialEq, + E::G2Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateUniversalParams<E>) -> 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<E: Pairing> StructuredReferenceString for UnivariateUniversalParams<E>

source§

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

+
source§

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Extract the verifier parameters from the public parameters.

source§

fn trim_with_verifier_degree( &self, - prover_supported_degree: usize, - verifier_supported_degree: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters + prover_supported_degree: usize, + verifier_supported_degree: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters for univariate polynomials to the given supported_degree, and returns committer key and verifier key. supported_degree should be in range 1..params.len()

source§

fn trim( &self, - supported_degree: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters + supported_degree: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters for univariate polynomials to the given supported_degree, and returns committer key and verifier key. supported_degree should be in range 1..params.len()

§

type ProverParam = UnivariateProverParam<E>

Prover parameters
§

type VerifierParam = UnivariateVerifierParam<E>

Verifier parameters
source§

fn load_srs_from_file( - _supported_degree: usize, - _file: Option<&str>, -) -> Result<Self, PCSError>

Load public parameter in production environment. + _supported_degree: usize, + _file: Option<&str>, +) -> Result<Self, PCSError>
Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be -implemented else where. We only load them into memory here. Read more
source§

impl<E: Pairing> Valid for UnivariateUniversalParams<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateUniversalParams<E>
where - E::G1Affine: Eq, - E::G2Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateUniversalParams<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateUniversalParams<E>
where - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateUniversalParams<E>
where - <E as Pairing>::G2Affine: RefUnwindSafe, - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateUniversalParams<E>

§

impl<E> Sync for UnivariateUniversalParams<E>

§

impl<E> Unpin for UnivariateUniversalParams<E>
where - <E as Pairing>::G2Affine: Unpin, - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateUniversalParams<E>
where - <E as Pairing>::G2Affine: UnwindSafe, - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +implemented else where. We only load them into memory here. Read more

source§

impl<E: Pairing> Valid for UnivariateUniversalParams<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateUniversalParams<E>
where + E::G1Affine: Eq, + E::G2Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateUniversalParams<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateUniversalParams<E>
where + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateUniversalParams<E>
where + <E as Pairing>::G2Affine: RefUnwindSafe, + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateUniversalParams<E>

§

impl<E> Sync for UnivariateUniversalParams<E>

§

impl<E> Unpin for UnivariateUniversalParams<E>
where + <E as Pairing>::G2Affine: Unpin, + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateUniversalParams<E>
where + <E as Pairing>::G2Affine: UnwindSafe, + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/prelude/struct.UnivariateVerifierParam.html b/jf_pcs/prelude/struct.UnivariateVerifierParam.html index 30a617e8c..d76176be1 100644 --- a/jf_pcs/prelude/struct.UnivariateVerifierParam.html +++ b/jf_pcs/prelude/struct.UnivariateVerifierParam.html @@ -1,82 +1,83 @@ -UnivariateVerifierParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateVerifierParam

source ·
pub struct UnivariateVerifierParam<E: Pairing> {
+UnivariateVerifierParam in jf_pcs::prelude - Rust

Struct jf_pcs::prelude::UnivariateVerifierParam

source ·
pub struct UnivariateVerifierParam<E: Pairing> {
     pub g: E::G1Affine,
     pub h: E::G2Affine,
     pub beta_h: E::G2Affine,
-    pub powers_of_h: Vec<E::G2Affine>,
-    pub powers_of_g: Vec<E::G1Affine>,
+    pub powers_of_h: Vec<E::G2Affine>,
+    pub powers_of_g: Vec<E::G1Affine>,
 }
Expand description

UnivariateVerifierParam is used to check evaluation proofs for a given commitment.

Fields§

§g: E::G1Affine

TODO: remove g, h and beta_h The generator of G1.

§h: E::G2Affine

The generator of G2.

§beta_h: E::G2Affine

\beta times the above generator of G2.

-
§powers_of_h: Vec<E::G2Affine>

powers of \beta time the generator h of G2: only used for multi-point +

§powers_of_h: Vec<E::G2Affine>

powers of \beta time the generator h of G2: only used for multi-point openings

-
§powers_of_g: Vec<E::G1Affine>

powers of \beta time the generator g of G1: only used for multi-point +

§powers_of_g: Vec<E::G1Affine>

powers of \beta time the generator g of G1: only used for multi-point openings

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateVerifierParam<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateVerifierParam<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateVerifierParam<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateVerifierParam<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateVerifierParam<E>
where - E::G1Affine: Clone, - E::G2Affine: Clone,

source§

fn clone(&self) -> UnivariateVerifierParam<E>

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<E: Debug + Pairing> Debug for UnivariateVerifierParam<E>
where - E::G1Affine: Debug, - E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Default for UnivariateVerifierParam<E>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateVerifierParam<E>
where - E::G1Affine: PartialEq, - E::G2Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateVerifierParam<E>) -> 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<E: Pairing> Valid for UnivariateVerifierParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateVerifierParam<E>
where - E::G1Affine: Eq, - E::G2Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateVerifierParam<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateVerifierParam<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateVerifierParam<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateVerifierParam<E>

§

impl<E> Sync for UnivariateVerifierParam<E>

§

impl<E> Unpin for UnivariateVerifierParam<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateVerifierParam<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateVerifierParam<E>
where + E::G1Affine: Clone, + E::G2Affine: Clone,

source§

fn clone(&self) -> UnivariateVerifierParam<E>

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<E: Debug + Pairing> Debug for UnivariateVerifierParam<E>
where + E::G1Affine: Debug, + E::G2Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Default for UnivariateVerifierParam<E>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for UnivariateVerifierParam<E>
where + E::G1Affine: PartialEq, + E::G2Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateVerifierParam<E>) -> 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<E: Pairing> Valid for UnivariateVerifierParam<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateVerifierParam<E>
where + E::G1Affine: Eq, + E::G2Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateVerifierParam<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateVerifierParam<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateVerifierParam<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateVerifierParam<E>

§

impl<E> Sync for UnivariateVerifierParam<E>

§

impl<E> Unpin for UnivariateVerifierParam<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateVerifierParam<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/trait.PolynomialCommitmentScheme.html b/jf_pcs/trait.PolynomialCommitmentScheme.html index d4145347b..acadf1c6a 100644 --- a/jf_pcs/trait.PolynomialCommitmentScheme.html +++ b/jf_pcs/trait.PolynomialCommitmentScheme.html @@ -1,80 +1,80 @@ -PolynomialCommitmentScheme in jf_pcs - Rust

Trait jf_pcs::PolynomialCommitmentScheme

source ·
pub trait PolynomialCommitmentScheme {
-    type SRS: Clone + Debug + StructuredReferenceString;
-    type Polynomial: Clone + Debug + Hash + PartialEq + Eq;
-    type Point: Clone + Ord + Debug + Sync + Hash + PartialEq + Eq;
+PolynomialCommitmentScheme in jf_pcs - Rust

Trait jf_pcs::PolynomialCommitmentScheme

source ·
pub trait PolynomialCommitmentScheme {
+    type SRS: Clone + Debug + StructuredReferenceString;
+    type Polynomial: Clone + Debug + Hash + PartialEq + Eq;
+    type Point: Clone + Ord + Debug + Sync + Hash + PartialEq + Eq;
     type Evaluation: Field;
-    type Commitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash;
-    type BatchCommitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq;
-    type Proof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash;
-    type BatchProof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq;
+    type Commitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash;
+    type BatchCommitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq;
+    type Proof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash;
+    type BatchProof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq;
 
     // Required methods
     fn trim(
-        srs: impl Borrow<Self::SRS>,
-        supported_degree: usize,
-        supported_num_vars: Option<usize>,
-    ) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>;
+        srs: impl Borrow<Self::SRS>,
+        supported_degree: usize,
+        supported_num_vars: Option<usize>,
+    ) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>;
     fn commit(
-        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
+        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
         poly: &Self::Polynomial,
-    ) -> Result<Self::Commitment, PCSError>;
+    ) -> Result<Self::Commitment, PCSError>;
     fn batch_commit(
-        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
+        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
         polys: &[Self::Polynomial],
-    ) -> Result<Self::BatchCommitment, PCSError>;
+    ) -> Result<Self::BatchCommitment, PCSError>;
     fn open(
-        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
+        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
         polynomial: &Self::Polynomial,
         point: &Self::Point,
-    ) -> Result<(Self::Proof, Self::Evaluation), PCSError>;
+    ) -> Result<(Self::Proof, Self::Evaluation), PCSError>;
     fn batch_open(
-        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
+        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
         batch_commitment: &Self::BatchCommitment,
         polynomials: &[Self::Polynomial],
         points: &[Self::Point],
-    ) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>;
+    ) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>;
     fn verify(
         verifier_param: &<Self::SRS as StructuredReferenceString>::VerifierParam,
         commitment: &Self::Commitment,
         point: &Self::Point,
         value: &Self::Evaluation,
         proof: &Self::Proof,
-    ) -> Result<bool, PCSError>;
+    ) -> Result<bool, PCSError>;
     fn batch_verify<R: RngCore + CryptoRng>(
         verifier_param: &<Self::SRS as StructuredReferenceString>::VerifierParam,
         multi_commitment: &Self::BatchCommitment,
         points: &[Self::Point],
         values: &[Self::Evaluation],
         batch_proof: &Self::BatchProof,
-        rng: &mut R,
-    ) -> Result<bool, PCSError>;
+        rng: &mut R,
+    ) -> Result<bool, PCSError>;
 
     // Provided methods
     fn load_srs_from_file(
-        supported_degree: usize,
-        file: Option<&str>,
-    ) -> Result<Self::SRS, PCSError> { ... }
+        supported_degree: usize,
+        file: Option<&str>,
+    ) -> Result<Self::SRS, PCSError> { ... }
     fn multi_open(
-        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
+        prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>,
         polynomial: &Self::Polynomial,
         points: &[Self::Point],
-    ) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError> { ... }
+    ) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError> { ... }
 }
Expand description

This trait defines APIs for polynomial commitment schemes. Note that for our usage, this PCS is not hiding. TODO(#187): add hiding property.

-

Required Associated Types§

source

type SRS: Clone + Debug + StructuredReferenceString

Structured reference string

-
source

type Polynomial: Clone + Debug + Hash + PartialEq + Eq

Polynomial and its associated types

-
source

type Point: Clone + Ord + Debug + Sync + Hash + PartialEq + Eq

Polynomial input domain

+

Required Associated Types§

source

type SRS: Clone + Debug + StructuredReferenceString

Structured reference string

+
source

type Polynomial: Clone + Debug + Hash + PartialEq + Eq

Polynomial and its associated types

+
source

type Point: Clone + Ord + Debug + Sync + Hash + PartialEq + Eq

Polynomial input domain

source

type Evaluation: Field

Polynomial Evaluation

-
source

type Commitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash

Commitments

-
source

type BatchCommitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq

Batch commitments

-
source

type Proof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash

Proofs

-
source

type BatchProof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq

Batch proofs

+
source

type Commitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash

Commitments

+
source

type BatchCommitment: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq

Batch commitments

+
source

type Proof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq + Hash

Proofs

+
source

type BatchProof: Clone + CanonicalSerialize + CanonicalDeserialize + Debug + PartialEq + Eq

Batch proofs

Required Methods§

source

fn trim( - srs: impl Borrow<Self::SRS>, - supported_degree: usize, - supported_num_vars: Option<usize>, -) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters. + srs: impl Borrow<Self::SRS>, + supported_degree: usize, + supported_num_vars: Option<usize>, +) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters. Input both supported_degree for univariate and supported_num_vars for multilinear.

§Note on function signature
@@ -83,25 +83,25 @@
source

fn commit( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, poly: &Self::Polynomial, -) -> Result<Self::Commitment, PCSError>

Generate a binding (but not hiding) commitment for a polynomial

+) -> Result<Self::Commitment, PCSError>

Generate a binding (but not hiding) commitment for a polynomial

source

fn batch_commit( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polys: &[Self::Polynomial], -) -> Result<Self::BatchCommitment, PCSError>

Batch commit a list of polynomials

+) -> Result<Self::BatchCommitment, PCSError>

Batch commit a list of polynomials

source

fn open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, point: &Self::Point, -) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the +) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the same.

source

fn batch_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, batch_commitment: &Self::BatchCommitment, polynomials: &[Self::Polynomial], points: &[Self::Point], -) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input a list of polynomials, and a same number of points, +) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input a list of polynomials, and a same number of points, compute a batch opening for all the polynomials.

source

fn verify( verifier_param: &<Self::SRS as StructuredReferenceString>::VerifierParam, @@ -109,7 +109,7 @@

Point, value: &Self::Evaluation, proof: &Self::Proof, -) -> Result<bool, PCSError>

Verifies that value is the evaluation at x of the polynomial +) -> Result<bool, PCSError>

Verifies that value is the evaluation at x of the polynomial committed inside comm.

source

fn batch_verify<R: RngCore + CryptoRng>( verifier_param: &<Self::SRS as StructuredReferenceString>::VerifierParam, @@ -117,21 +117,21 @@

Point], values: &[Self::Evaluation], batch_proof: &Self::BatchProof, - rng: &mut R, -) -> Result<bool, PCSError>

Verifies that value_i is the evaluation at x_i of the polynomial + rng: &mut R, +) -> Result<bool, PCSError>

Verifies that value_i is the evaluation at x_i of the polynomial poly_i committed inside comm.

Provided Methods§

source

fn load_srs_from_file( - supported_degree: usize, - file: Option<&str>, -) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. + supported_degree: usize, + file: Option<&str>, +) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be implemented else where. We only load them into memory here.

If file=None, we load the default choice of SRS.

source

fn multi_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, points: &[Self::Point], -) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Open a single polynomial at multiple points. +) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Open a single polynomial at multiple points. The naive default implementation just open them individually.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Pairing> PolynomialCommitmentScheme for MultilinearKzgPCS<E>

§

type SRS = (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

§

type Polynomial = Arc<DenseMultilinearExtension<<E as Pairing>::ScalarField>>

§

type Point = Vec<<E as Pairing>::ScalarField>

§

type Evaluation = <E as Pairing>::ScalarField

§

type Commitment = Commitment<E>

§

type BatchCommitment = Commitment<E>

§

type Proof = MultilinearKzgProof<E>

§

type BatchProof = MultilinearKzgBatchProof<E>

source§

impl<E: Pairing> PolynomialCommitmentScheme for UnivariateKzgPCS<E>

§

type SRS = UnivariateUniversalParams<E>

§

type Polynomial = DensePolynomial<<E as Pairing>::ScalarField>

§

type Point = <E as Pairing>::ScalarField

§

type Evaluation = <E as Pairing>::ScalarField

§

type Commitment = Commitment<E>

§

type BatchCommitment = Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>

§

type Proof = UnivariateKzgProof<E>

§

type BatchProof = Vec<UnivariateKzgProof<E>>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Pairing> PolynomialCommitmentScheme for MultilinearKzgPCS<E>

§

type SRS = (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

§

type Polynomial = Arc<DenseMultilinearExtension<<E as Pairing>::ScalarField>>

§

type Point = Vec<<E as Pairing>::ScalarField>

§

type Evaluation = <E as Pairing>::ScalarField

§

type Commitment = Commitment<E>

§

type BatchCommitment = Commitment<E>

§

type Proof = MultilinearKzgProof<E>

§

type BatchProof = MultilinearKzgBatchProof<E>

source§

impl<E: Pairing> PolynomialCommitmentScheme for UnivariateKzgPCS<E>

§

type SRS = UnivariateUniversalParams<E>

§

type Polynomial = DensePolynomial<<E as Pairing>::ScalarField>

§

type Point = <E as Pairing>::ScalarField

§

type Evaluation = <E as Pairing>::ScalarField

§

type Commitment = Commitment<E>

§

type BatchCommitment = Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>

§

type Proof = UnivariateKzgProof<E>

§

type BatchProof = Vec<UnivariateKzgProof<E>>

\ No newline at end of file diff --git a/jf_pcs/trait.StructuredReferenceString.html b/jf_pcs/trait.StructuredReferenceString.html index 9894db9c9..a73f999fb 100644 --- a/jf_pcs/trait.StructuredReferenceString.html +++ b/jf_pcs/trait.StructuredReferenceString.html @@ -1,37 +1,37 @@ -StructuredReferenceString in jf_pcs - Rust

Trait jf_pcs::StructuredReferenceString

source ·
pub trait StructuredReferenceString: Sized {
+StructuredReferenceString in jf_pcs - Rust

Trait jf_pcs::StructuredReferenceString

source ·
pub trait StructuredReferenceString: Sized {
     type ProverParam;
     type VerifierParam;
 
     // Required methods
-    fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam;
+    fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam;
     fn extract_verifier_param(
         &self,
-        supported_degree: usize,
+        supported_degree: usize,
     ) -> Self::VerifierParam;
     fn trim(
         &self,
-        supported_degree: usize,
-    ) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>;
+        supported_degree: usize,
+    ) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>;
     fn trim_with_verifier_degree(
         &self,
-        prover_supported_degree: usize,
-        verifier_supported_degree: usize,
-    ) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>;
+        prover_supported_degree: usize,
+        verifier_supported_degree: usize,
+    ) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>;
 
     // Provided method
     fn load_srs_from_file(
-        _supported_degree: usize,
-        _file: Option<&str>,
-    ) -> Result<Self, PCSError> { ... }
+        _supported_degree: usize,
+        _file: Option<&str>,
+    ) -> Result<Self, PCSError> { ... }
 }
Expand description

API definitions for structured reference string

Required Associated Types§

source

type ProverParam

Prover parameters

source

type VerifierParam

Verifier parameters

-

Required Methods§

source

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

-
source

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Extract the verifier parameters from the public parameters.

+

Required Methods§

source

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

Extract the prover parameters from the public parameters.

+
source

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Extract the verifier parameters from the public parameters.

source

fn trim( &self, - supported_degree: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters + supported_degree: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters for polynomials to the given supported_degree, and returns committer key and verifier key.

    @@ -42,9 +42,9 @@

    supported_log_size should be in range 1..=params.log_size

source

fn trim_with_verifier_degree( &self, - prover_supported_degree: usize, - verifier_supported_degree: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters + prover_supported_degree: usize, + verifier_supported_degree: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Trim the universal parameters to specialize the public parameters for polynomials to the given prover/verifier_supported_degree, and returns committer key and verifier key.

    @@ -55,19 +55,19 @@

supported_log_size should be in range 1..=params.log_size

Provided Methods§

source

fn load_srs_from_file( - _supported_degree: usize, - _file: Option<&str>, -) -> Result<Self, PCSError>

Load public parameter in production environment. + _supported_degree: usize, + _file: Option<&str>, +) -> Result<Self, PCSError>

Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be implemented else where. We only load them into memory here.

If file=None, we load the default choice of SRS.

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<E: Pairing> StructuredReferenceString for (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<E: Pairing> StructuredReferenceString for (MultilinearUniversalParams<E>, UnivariateUniversalParams<E>)

source§

fn trim_with_verifier_degree( &self, - prover_supported_num_vars: usize, - _verifier_supported_num_vars: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Naive implementation

+ prover_supported_num_vars: usize, + _verifier_supported_num_vars: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

Naive implementation

§

type ProverParam = (MultilinearProverParam<E>, UnivariateProverParam<E>)

§

type VerifierParam = (MultilinearVerifierParam<E>, UnivariateVerifierParam<E>)

source§

fn trim( &self, - supported_degree: usize, -) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>

source§

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

source§

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Implementors§

\ No newline at end of file + supported_degree: usize, +) -> Result<(Self::ProverParam, Self::VerifierParam), PCSError>
source§

fn extract_prover_param(&self, supported_degree: usize) -> Self::ProverParam

source§

fn extract_verifier_param(&self, supported_degree: usize) -> Self::VerifierParam

Implementors§

\ No newline at end of file diff --git a/jf_pcs/trait.UnivariatePCS.html b/jf_pcs/trait.UnivariatePCS.html index 29f2e3f5f..2a57fc2e9 100644 --- a/jf_pcs/trait.UnivariatePCS.html +++ b/jf_pcs/trait.UnivariatePCS.html @@ -1,90 +1,90 @@ -UnivariatePCS in jf_pcs - Rust

Trait jf_pcs::UnivariatePCS

source ·
pub trait UnivariatePCS: PolynomialCommitmentScheme
where +UnivariatePCS in jf_pcs - Rust

Trait jf_pcs::UnivariatePCS

source ·
pub trait UnivariatePCS: PolynomialCommitmentScheme
where Self::Evaluation: FftField,
{ // Required methods fn multi_open_rou_proofs( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, - ) -> Result<Vec<Self::Proof>, PCSError>; + ) -> Result<Vec<Self::Proof>, PCSError>; fn multi_open_rou_evals( polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, - ) -> Result<Vec<Self::Evaluation>, PCSError>; + ) -> Result<Vec<Self::Evaluation>, PCSError>; fn multi_point_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, points: &[Self::Point], - ) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>; + ) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>; fn multi_point_verify( - verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, + verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, commitment: &Self::Commitment, points: &[Self::Point], values: &[Self::Evaluation], proof: &Self::Proof, - ) -> Result<bool, PCSError>; + ) -> Result<bool, PCSError>; // Provided methods fn trim_fft_size( - srs: impl Borrow<Self::SRS>, - supported_degree: usize, - ) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError> { ... } + srs: impl Borrow<Self::SRS>, + supported_degree: usize, + ) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError> { ... } fn multi_open_rou_eval_domain( - degree: usize, - num_points: usize, - ) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError> { ... } + degree: usize, + num_points: usize, + ) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError> { ... } fn multi_open_rou( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, - ) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError> { ... } + ) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError> { ... } }
Expand description

Super-trait specific for univariate polynomial commitment schemes.

Required Methods§

source

fn multi_open_rou_proofs( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<Vec<Self::Proof>, PCSError>

Compute the opening proofs in Self::multi_open_rou().

+) -> Result<Vec<Self::Proof>, PCSError>

Compute the opening proofs in Self::multi_open_rou().

source

fn multi_open_rou_evals( polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<Vec<Self::Evaluation>, PCSError>

Compute the evaluations in Self::multi_open_rou().

+) -> Result<Vec<Self::Evaluation>, PCSError>

Compute the evaluations in Self::multi_open_rou().

source

fn multi_point_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, points: &[Self::Point], -) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>

Input a polynomial, and multiple evaluation points, +) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>

Input a polynomial, and multiple evaluation points, compute a single opening proof for the multiple points of the same polynomial.

source

fn multi_point_verify( - verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, + verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, commitment: &Self::Commitment, points: &[Self::Point], values: &[Self::Evaluation], proof: &Self::Proof, -) -> Result<bool, PCSError>

Verifies that values are the evaluation at the points of the +) -> Result<bool, PCSError>

Verifies that values are the evaluation at the points of the polynomial committed inside comm.

Provided Methods§

source

fn trim_fft_size( - srs: impl Borrow<Self::SRS>, - supported_degree: usize, -) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Similar to PolynomialCommitmentScheme::trim(), but trim to support + srs: impl Borrow<Self::SRS>, + supported_degree: usize, +) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Similar to PolynomialCommitmentScheme::trim(), but trim to support the FFT operations, such as Self::multi_open_rou() or other operations that involves roots of unity.

source

fn multi_open_rou_eval_domain( - degree: usize, - num_points: usize, -) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError>

Given degree of the committed polynomial and num_points to open, + degree: usize, + num_points: usize, +) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError>

Given degree of the committed polynomial and num_points to open, return the evaluation domain for faster computation of opening proofs and evaluations (both using FFT).

source

fn multi_open_rou( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Same task as PolynomialCommitmentScheme::multi_open(), except the +) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Same task as PolynomialCommitmentScheme::multi_open(), except the points are roots of unity. The first num_points of roots will be evaluated (in canonical order).

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Pairing> UnivariatePCS for UnivariateKzgPCS<E>

\ No newline at end of file +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E: Pairing> UnivariatePCS for UnivariateKzgPCS<E>

\ No newline at end of file diff --git a/jf_pcs/transcript/enum.TranscriptError.html b/jf_pcs/transcript/enum.TranscriptError.html index d8ca29943..8fb2f04c8 100644 --- a/jf_pcs/transcript/enum.TranscriptError.html +++ b/jf_pcs/transcript/enum.TranscriptError.html @@ -1,26 +1,26 @@ -TranscriptError in jf_pcs::transcript - Rust

Enum jf_pcs::transcript::TranscriptError

source ·
pub enum TranscriptError {
-    InvalidTranscript(String),
+TranscriptError in jf_pcs::transcript - Rust

Enum jf_pcs::transcript::TranscriptError

source ·
pub enum TranscriptError {
+    InvalidTranscript(String),
     SerializationError(SerializationError),
 }
Expand description

A enum specifying the possible failure modes of the Transcript.

-

Variants§

§

InvalidTranscript(String)

Invalid Transcript: {0}

+

Variants§

§

InvalidTranscript(String)

Invalid Transcript: {0}

§

SerializationError(SerializationError)

An error during (de)serialization: {0}

-

Trait Implementations§

source§

impl Debug for TranscriptError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for TranscriptError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<SerializationError> for TranscriptError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<TranscriptError> for PCSError

source§

fn from(e: TranscriptError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl Debug for TranscriptError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for TranscriptError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<SerializationError> for TranscriptError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<TranscriptError> for PCSError

source§

fn from(e: TranscriptError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/transcript/index.html b/jf_pcs/transcript/index.html index ac99027a2..a0ae18296 100644 --- a/jf_pcs/transcript/index.html +++ b/jf_pcs/transcript/index.html @@ -1,3 +1,3 @@ -jf_pcs::transcript - Rust

Module jf_pcs::transcript

source ·
Expand description

Module for PolyIOP transcript.

+jf_pcs::transcript - Rust

Module jf_pcs::transcript

source ·
Expand description

Module for PolyIOP transcript.

Structs§

  • An IOP transcript consists of a Merlin transcript and a flag is_empty to indicate that if the transcript is empty.

Enums§

  • A enum specifying the possible failure modes of the Transcript.
\ No newline at end of file diff --git a/jf_pcs/transcript/struct.IOPTranscript.html b/jf_pcs/transcript/struct.IOPTranscript.html index 7edc12215..2e58d0a69 100644 --- a/jf_pcs/transcript/struct.IOPTranscript.html +++ b/jf_pcs/transcript/struct.IOPTranscript.html @@ -1,56 +1,57 @@ -IOPTranscript in jf_pcs::transcript - Rust

Struct jf_pcs::transcript::IOPTranscript

source ·
pub struct IOPTranscript<F: PrimeField> { /* private fields */ }
Expand description

An IOP transcript consists of a Merlin transcript and a flag is_empty to +IOPTranscript in jf_pcs::transcript - Rust

Struct jf_pcs::transcript::IOPTranscript

source ·
pub struct IOPTranscript<F: PrimeField> { /* private fields */ }
Expand description

An IOP transcript consists of a Merlin transcript and a flag is_empty to indicate that if the transcript is empty.

It is associated with a prime field F for which challenges are generated over.

The is_empty flag is useful in the case where a protocol is initiated by the verifier, in which case the prover should start its phase by receiving a non-empty transcript.

-

Implementations§

source§

impl<F: PrimeField> IOPTranscript<F>

source

pub fn new(label: &'static [u8]) -> Self

Create a new IOP transcript.

+

Implementations§

source§

impl<F: PrimeField> IOPTranscript<F>

source

pub fn new(label: &'static [u8]) -> Self

Create a new IOP transcript.

source

pub fn append_message( &mut self, - label: &'static [u8], - msg: &[u8], -) -> Result<(), TranscriptError>

Append the message to the transcript.

+ label: &'static [u8], + msg: &[u8], +) -> Result<(), TranscriptError>

Append the message to the transcript.

source

pub fn append_serializable_element<S: CanonicalSerialize>( &mut self, - label: &'static [u8], - group_elem: &S, -) -> Result<(), TranscriptError>

Append the message to the transcript.

+ label: &'static [u8], + group_elem: &S, +) -> Result<(), TranscriptError>

Append the message to the transcript.

source

pub fn get_and_append_challenge( &mut self, - label: &'static [u8], -) -> Result<F, TranscriptError>

Generate the challenge from the current transcript + label: &'static [u8], +) -> Result<F, TranscriptError>

Generate the challenge from the current transcript and append it to the transcript.

The output field element is statistical uniform as long as the field has a size less than 2^384.

source

pub fn get_and_append_byte_challenge( &mut self, - label: &'static [u8], - dest: &mut [u8], -) -> Result<(), TranscriptError>

Generate the challenge from the current transcript + label: &'static [u8], + dest: &mut [u8], +) -> Result<(), TranscriptError>

Generate the challenge from the current transcript and append it to the transcript.

Without exposing the internal field transcript, this is a wrapper around getting bytes as opposed to field elements.

-

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for IOPTranscript<F>

source§

fn clone(&self) -> IOPTranscript<F>

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

Auto Trait Implementations§

§

impl<F> Freeze for IOPTranscript<F>

§

impl<F> RefUnwindSafe for IOPTranscript<F>
where - F: RefUnwindSafe,

§

impl<F> Send for IOPTranscript<F>

§

impl<F> Sync for IOPTranscript<F>

§

impl<F> Unpin for IOPTranscript<F>
where - F: Unpin,

§

impl<F> UnwindSafe for IOPTranscript<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for IOPTranscript<F>

source§

fn clone(&self) -> IOPTranscript<F>

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

Auto Trait Implementations§

§

impl<F> Freeze for IOPTranscript<F>

§

impl<F> RefUnwindSafe for IOPTranscript<F>
where + F: RefUnwindSafe,

§

impl<F> Send for IOPTranscript<F>

§

impl<F> Sync for IOPTranscript<F>

§

impl<F> Unpin for IOPTranscript<F>
where + F: Unpin,

§

impl<F> UnwindSafe for IOPTranscript<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/univariate_kzg/index.html b/jf_pcs/univariate_kzg/index.html index e6dacd7c4..e3c8aaad8 100644 --- a/jf_pcs/univariate_kzg/index.html +++ b/jf_pcs/univariate_kzg/index.html @@ -1,2 +1,2 @@ -jf_pcs::univariate_kzg - Rust

Module jf_pcs::univariate_kzg

source ·
Expand description

Main module for univariate KZG commitment scheme

+jf_pcs::univariate_kzg - Rust

Module jf_pcs::univariate_kzg

source ·
Expand description

Main module for univariate KZG commitment scheme

Structs§

Type Aliases§

\ No newline at end of file diff --git a/jf_pcs/univariate_kzg/struct.UnivariateKzgPCS.html b/jf_pcs/univariate_kzg/struct.UnivariateKzgPCS.html index 2fc0b937a..04702b5d3 100644 --- a/jf_pcs/univariate_kzg/struct.UnivariateKzgPCS.html +++ b/jf_pcs/univariate_kzg/struct.UnivariateKzgPCS.html @@ -1,32 +1,32 @@ -UnivariateKzgPCS in jf_pcs::univariate_kzg - Rust

Struct jf_pcs::univariate_kzg::UnivariateKzgPCS

source ·
pub struct UnivariateKzgPCS<E> { /* private fields */ }
Expand description

KZG Polynomial Commitment Scheme on univariate polynomial.

+UnivariateKzgPCS in jf_pcs::univariate_kzg - Rust

Struct jf_pcs::univariate_kzg::UnivariateKzgPCS

source ·
pub struct UnivariateKzgPCS<E> { /* private fields */ }
Expand description

KZG Polynomial Commitment Scheme on univariate polynomial.

Trait Implementations§

source§

impl<E: Pairing> PolynomialCommitmentScheme for UnivariateKzgPCS<E>

source§

fn trim( - srs: impl Borrow<Self::SRS>, - supported_degree: usize, - supported_num_vars: Option<usize>, -) -> Result<(UnivariateProverParam<E>, UnivariateVerifierParam<E>), PCSError>

Trim the universal parameters to specialize the public parameters. + srs: impl Borrow<Self::SRS>, + supported_degree: usize, + supported_num_vars: Option<usize>, +) -> Result<(UnivariateProverParam<E>, UnivariateVerifierParam<E>), PCSError>

Trim the universal parameters to specialize the public parameters. Input max_degree for univariate. supported_num_vars must be None or an error is returned.

source§

fn commit( - prover_param: impl Borrow<UnivariateProverParam<E>>, + prover_param: impl Borrow<UnivariateProverParam<E>>, poly: &Self::Polynomial, -) -> Result<Self::Commitment, PCSError>

Generate a commitment for a polynomial +) -> Result<Self::Commitment, PCSError>

Generate a commitment for a polynomial Note that the scheme is not hiding

source§

fn batch_commit( - prover_param: impl Borrow<UnivariateProverParam<E>>, + prover_param: impl Borrow<UnivariateProverParam<E>>, polys: &[Self::Polynomial], -) -> Result<Self::BatchCommitment, PCSError>

Generate a commitment for a list of polynomials

+) -> Result<Self::BatchCommitment, PCSError>

Generate a commitment for a list of polynomials

source§

fn open( - prover_param: impl Borrow<UnivariateProverParam<E>>, + prover_param: impl Borrow<UnivariateProverParam<E>>, polynomial: &Self::Polynomial, point: &Self::Point, -) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the +) -> Result<(Self::Proof, Self::Evaluation), PCSError>

On input a polynomial p and a point point, outputs a proof for the same.

source§

fn batch_open( - prover_param: impl Borrow<UnivariateProverParam<E>>, + prover_param: impl Borrow<UnivariateProverParam<E>>, _multi_commitment: &Self::BatchCommitment, polynomials: &[Self::Polynomial], points: &[Self::Point], -) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input a list of polynomials, and a same number of points, +) -> Result<(Self::BatchProof, Vec<Self::Evaluation>), PCSError>

Input a list of polynomials, and a same number of points, compute a multi-opening for all the polynomials.

source§

fn verify( verifier_param: &UnivariateVerifierParam<E>, @@ -34,7 +34,7 @@ point: &Self::Point, value: &E::ScalarField, proof: &Self::Proof, -) -> Result<bool, PCSError>

Verifies that value is the evaluation at x of the polynomial +) -> Result<bool, PCSError>

Verifies that value is the evaluation at x of the polynomial committed inside comm.

source§

fn batch_verify<R: RngCore + CryptoRng>( verifier_param: &UnivariateVerifierParam<E>, @@ -42,89 +42,89 @@ points: &[Self::Point], values: &[E::ScalarField], batch_proof: &Self::BatchProof, - rng: &mut R, -) -> Result<bool, PCSError>

Verifies that value_i is the evaluation at x_i of the polynomial + rng: &mut R, +) -> Result<bool, PCSError>

Verifies that value_i is the evaluation at x_i of the polynomial poly_i committed inside comm.

source§

fn multi_open( - prover_param: impl Borrow<UnivariateProverParam<E>>, + prover_param: impl Borrow<UnivariateProverParam<E>>, polynomial: &Self::Polynomial, points: &[Self::Point], -) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Fast computation of batch opening for a single polynomial at multiple +) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Fast computation of batch opening for a single polynomial at multiple arbitrary points. Details see Sec 2.1~2.3 of FK23.

Only accept polynomial with power-of-two degree, no constraint on the size of points

-
§

type SRS = UnivariateUniversalParams<E>

Structured reference string
§

type Polynomial = DensePolynomial<<E as Pairing>::ScalarField>

Polynomial and its associated types
§

type Point = <E as Pairing>::ScalarField

Polynomial input domain
§

type Evaluation = <E as Pairing>::ScalarField

Polynomial Evaluation
§

type Commitment = Commitment<E>

Commitments
§

type BatchCommitment = Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>

Batch commitments
§

type Proof = UnivariateKzgProof<E>

Proofs
§

type BatchProof = Vec<UnivariateKzgProof<E>>

Batch proofs
source§

fn load_srs_from_file( - supported_degree: usize, - file: Option<&str>, -) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. +
§

type SRS = UnivariateUniversalParams<E>

Structured reference string
§

type Polynomial = DensePolynomial<<E as Pairing>::ScalarField>

Polynomial and its associated types
§

type Point = <E as Pairing>::ScalarField

Polynomial input domain
§

type Evaluation = <E as Pairing>::ScalarField

Polynomial Evaluation
§

type Commitment = Commitment<E>

Commitments
§

type BatchCommitment = Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>

Batch commitments
§

type Proof = UnivariateKzgProof<E>

Proofs
§

type BatchProof = Vec<UnivariateKzgProof<E>>

Batch proofs
source§

fn load_srs_from_file( + supported_degree: usize, + file: Option<&str>, +) -> Result<Self::SRS, PCSError>

Load public parameter in production environment. These parameters are loaded from files with serialized pp bytes, and the actual setup is usually carried out via MPC and should be implemented else where. We only load them into memory here. Read more
source§

impl<E: Pairing> UnivariatePCS for UnivariateKzgPCS<E>

source§

fn multi_open_rou_evals( polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<Vec<Self::Evaluation>, PCSError>

Compute the evaluations in Self::multi_open_rou().

+) -> Result<Vec<Self::Evaluation>, PCSError>

Compute the evaluations in Self::multi_open_rou().

source§

fn multi_point_open( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, points: &[Self::Point], -) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>

Input a polynomial, and multiple evaluation points, +) -> Result<(Self::Proof, Vec<Self::Evaluation>), PCSError>

Input a polynomial, and multiple evaluation points, compute a batch opening proof for the multiple points of the same polynomial.

Warning: don’t use it when points.len() is large

source§

fn multi_point_verify( - verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, + verifier_param: impl Borrow<<Self::SRS as StructuredReferenceString>::VerifierParam>, commitment: &Self::Commitment, points: &[Self::Point], values: &[Self::Evaluation], proof: &Self::Proof, -) -> Result<bool, PCSError>

Verifies that values are the evaluation at the points of the +) -> Result<bool, PCSError>

Verifies that values are the evaluation at the points of the polynomial committed inside comm.

Warning: don’t use it when points.len() is large

source§

fn multi_open_rou_proofs( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<Vec<Self::Proof>, PCSError>

Compute the opening proofs in Self::multi_open_rou().
source§

fn trim_fft_size( - srs: impl Borrow<Self::SRS>, - supported_degree: usize, -) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Similar to PolynomialCommitmentScheme::trim(), but trim to support +) -> Result<Vec<Self::Proof>, PCSError>
Compute the opening proofs in Self::multi_open_rou().
source§

fn trim_fft_size( + srs: impl Borrow<Self::SRS>, + supported_degree: usize, +) -> Result<(<Self::SRS as StructuredReferenceString>::ProverParam, <Self::SRS as StructuredReferenceString>::VerifierParam), PCSError>

Similar to PolynomialCommitmentScheme::trim(), but trim to support the FFT operations, such as Self::multi_open_rou() or other operations that involves roots of unity.
source§

fn multi_open_rou_eval_domain( - degree: usize, - num_points: usize, -) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError>

Given degree of the committed polynomial and num_points to open, + degree: usize, + num_points: usize, +) -> Result<Radix2EvaluationDomain<Self::Evaluation>, PCSError>
Given degree of the committed polynomial and num_points to open, return the evaluation domain for faster computation of opening proofs and evaluations (both using FFT).
source§

fn multi_open_rou( - prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, + prover_param: impl Borrow<<Self::SRS as StructuredReferenceString>::ProverParam>, polynomial: &Self::Polynomial, - num_points: usize, + num_points: usize, domain: &Radix2EvaluationDomain<Self::Evaluation>, -) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>

Same task as PolynomialCommitmentScheme::multi_open(), except the +) -> Result<(Vec<Self::Proof>, Vec<Self::Evaluation>), PCSError>
Same task as PolynomialCommitmentScheme::multi_open(), except the points are roots of unity. -The first num_points of roots will be evaluated (in canonical order).

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateKzgPCS<E>

§

impl<E> RefUnwindSafe for UnivariateKzgPCS<E>
where - E: RefUnwindSafe,

§

impl<E> Send for UnivariateKzgPCS<E>
where - E: Send,

§

impl<E> Sync for UnivariateKzgPCS<E>
where - E: Sync,

§

impl<E> Unpin for UnivariateKzgPCS<E>
where - E: Unpin,

§

impl<E> UnwindSafe for UnivariateKzgPCS<E>
where - E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+The first num_points of roots will be evaluated (in canonical order).

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateKzgPCS<E>

§

impl<E> RefUnwindSafe for UnivariateKzgPCS<E>
where + E: RefUnwindSafe,

§

impl<E> Send for UnivariateKzgPCS<E>
where + E: Send,

§

impl<E> Sync for UnivariateKzgPCS<E>
where + E: Sync,

§

impl<E> Unpin for UnivariateKzgPCS<E>
where + E: Unpin,

§

impl<E> UnwindSafe for UnivariateKzgPCS<E>
where + E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/univariate_kzg/struct.UnivariateKzgProof.html b/jf_pcs/univariate_kzg/struct.UnivariateKzgProof.html index 90eb56fbd..c060c8924 100644 --- a/jf_pcs/univariate_kzg/struct.UnivariateKzgProof.html +++ b/jf_pcs/univariate_kzg/struct.UnivariateKzgProof.html @@ -1,65 +1,66 @@ -UnivariateKzgProof in jf_pcs::univariate_kzg - Rust

Struct jf_pcs::univariate_kzg::UnivariateKzgProof

source ·
pub struct UnivariateKzgProof<E: Pairing> {
+UnivariateKzgProof in jf_pcs::univariate_kzg - Rust

Struct jf_pcs::univariate_kzg::UnivariateKzgProof

source ·
pub struct UnivariateKzgProof<E: Pairing> {
     pub proof: E::G1Affine,
 }
Expand description

proof of opening

Fields§

§proof: E::G1Affine

Evaluation of quotients

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateKzgProof<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for UnivariateKzgProof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateKzgProof<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for UnivariateKzgProof<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateKzgProof<E>
where - E::G1Affine: Clone,

source§

fn clone(&self) -> UnivariateKzgProof<E>

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<E: Debug + Pairing> Debug for UnivariateKzgProof<E>
where - E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Hash for UnivariateKzgProof<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where - __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for UnivariateKzgProof<E>
where - E::G1Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateKzgProof<E>) -> 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<E: Pairing> Valid for UnivariateKzgProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateKzgProof<E>
where - E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateKzgProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateKzgProof<E>
where - <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateKzgProof<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateKzgProof<E>

§

impl<E> Sync for UnivariateKzgProof<E>

§

impl<E> Unpin for UnivariateKzgProof<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateKzgProof<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for UnivariateKzgProof<E>
where + E::G1Affine: Clone,

source§

fn clone(&self) -> UnivariateKzgProof<E>

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<E: Debug + Pairing> Debug for UnivariateKzgProof<E>
where + E::G1Affine: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> Hash for UnivariateKzgProof<E>

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E: PartialEq + Pairing> PartialEq for UnivariateKzgProof<E>
where + E::G1Affine: PartialEq,

source§

fn eq(&self, other: &UnivariateKzgProof<E>) -> 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<E: Pairing> Valid for UnivariateKzgProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for UnivariateKzgProof<E>
where + E::G1Affine: Eq,

source§

impl<E: Pairing> StructuralPartialEq for UnivariateKzgProof<E>

Auto Trait Implementations§

§

impl<E> Freeze for UnivariateKzgProof<E>
where + <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for UnivariateKzgProof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for UnivariateKzgProof<E>

§

impl<E> Sync for UnivariateKzgProof<E>

§

impl<E> Unpin for UnivariateKzgProof<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for UnivariateKzgProof<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_pcs/univariate_kzg/type.UnivariateKzgBatchProof.html b/jf_pcs/univariate_kzg/type.UnivariateKzgBatchProof.html index c59929114..ea60d0285 100644 --- a/jf_pcs/univariate_kzg/type.UnivariateKzgBatchProof.html +++ b/jf_pcs/univariate_kzg/type.UnivariateKzgBatchProof.html @@ -1,2 +1,2 @@ -UnivariateKzgBatchProof in jf_pcs::univariate_kzg - Rust

Type Alias jf_pcs::univariate_kzg::UnivariateKzgBatchProof

source ·
pub type UnivariateKzgBatchProof<E> = Vec<UnivariateKzgProof<E>>;
Expand description

batch proof

+UnivariateKzgBatchProof in jf_pcs::univariate_kzg - Rust

Type Alias jf_pcs::univariate_kzg::UnivariateKzgBatchProof

source ·
pub type UnivariateKzgBatchProof<E> = Vec<UnivariateKzgProof<E>>;
Expand description

batch proof

Aliased Type§

struct UnivariateKzgBatchProof<E> { /* private fields */ }
\ No newline at end of file diff --git a/jf_plonk/all.html b/jf_plonk/all.html index 8fbc6b07d..b2a477961 100644 --- a/jf_plonk/all.html +++ b/jf_plonk/all.html @@ -1 +1 @@ -List of all items in this crate
\ No newline at end of file +List of all items in this crate
\ No newline at end of file diff --git a/jf_plonk/circuit/index.html b/jf_plonk/circuit/index.html index 63bbdf51a..43a9b4a6d 100644 --- a/jf_plonk/circuit/index.html +++ b/jf_plonk/circuit/index.html @@ -1,3 +1,3 @@ -jf_plonk::circuit - Rust

Module jf_plonk::circuit

source ·
Expand description

Customized circuit

+jf_plonk::circuit - Rust

Module jf_plonk::circuit

source ·
Expand description

Customized circuit

Modules§

  • Circuits implementation Circuits for Plonk verifiers.
  • Implementing native circuit for rescue transcript
\ No newline at end of file diff --git a/jf_plonk/circuit/plonk_verifier/index.html b/jf_plonk/circuit/plonk_verifier/index.html index 5135550d0..ca2e22670 100644 --- a/jf_plonk/circuit/plonk_verifier/index.html +++ b/jf_plonk/circuit/plonk_verifier/index.html @@ -1,4 +1,4 @@ -jf_plonk::circuit::plonk_verifier - Rust

Module jf_plonk::circuit::plonk_verifier

source ·
Expand description

Circuits implementation +jf_plonk::circuit::plonk_verifier - Rust

Module jf_plonk::circuit::plonk_verifier

source ·
Expand description

Circuits implementation Circuits for Plonk verifiers.

Structs§

  • Represent variables of an aggregated SNARK proof that batchly proving multiple instances.
  • Represent variable of a Plonk verifying key.

Traits§

\ No newline at end of file diff --git a/jf_plonk/circuit/plonk_verifier/struct.BatchProofVar.html b/jf_plonk/circuit/plonk_verifier/struct.BatchProofVar.html index 643a118da..4499e919c 100644 --- a/jf_plonk/circuit/plonk_verifier/struct.BatchProofVar.html +++ b/jf_plonk/circuit/plonk_verifier/struct.BatchProofVar.html @@ -1,39 +1,40 @@ -BatchProofVar in jf_plonk::circuit::plonk_verifier - Rust

Struct jf_plonk::circuit::plonk_verifier::BatchProofVar

source ·
pub struct BatchProofVar<F: PrimeField> { /* private fields */ }
Expand description

Represent variables of an aggregated SNARK proof that batchly proving +BatchProofVar in jf_plonk::circuit::plonk_verifier - Rust

Struct jf_plonk::circuit::plonk_verifier::BatchProofVar

source ·
pub struct BatchProofVar<F: PrimeField> { /* private fields */ }
Expand description

Represent variables of an aggregated SNARK proof that batchly proving multiple instances.

-

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for BatchProofVar<F>

source§

fn clone(&self) -> BatchProofVar<F>

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<F: Debug + PrimeField> Debug for BatchProofVar<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: PartialEq + PrimeField> PartialEq for BatchProofVar<F>

source§

fn eq(&self, other: &BatchProofVar<F>) -> 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<F: Eq + PrimeField> Eq for BatchProofVar<F>

source§

impl<F: PrimeField> StructuralPartialEq for BatchProofVar<F>

Auto Trait Implementations§

§

impl<F> Freeze for BatchProofVar<F>

§

impl<F> RefUnwindSafe for BatchProofVar<F>
where - F: RefUnwindSafe,

§

impl<F> Send for BatchProofVar<F>

§

impl<F> Sync for BatchProofVar<F>

§

impl<F> Unpin for BatchProofVar<F>
where - F: Unpin,

§

impl<F> UnwindSafe for BatchProofVar<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Trait Implementations§

source§

impl<F: Clone + PrimeField> Clone for BatchProofVar<F>

source§

fn clone(&self) -> BatchProofVar<F>

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<F: Debug + PrimeField> Debug for BatchProofVar<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: PartialEq + PrimeField> PartialEq for BatchProofVar<F>

source§

fn eq(&self, other: &BatchProofVar<F>) -> 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<F: Eq + PrimeField> Eq for BatchProofVar<F>

source§

impl<F: PrimeField> StructuralPartialEq for BatchProofVar<F>

Auto Trait Implementations§

§

impl<F> Freeze for BatchProofVar<F>

§

impl<F> RefUnwindSafe for BatchProofVar<F>
where + F: RefUnwindSafe,

§

impl<F> Send for BatchProofVar<F>

§

impl<F> Sync for BatchProofVar<F>

§

impl<F> Unpin for BatchProofVar<F>
where + F: Unpin,

§

impl<F> UnwindSafe for BatchProofVar<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html b/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html index 2bd1a743d..ee0dc61f9 100644 --- a/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html +++ b/jf_plonk/circuit/plonk_verifier/struct.VerifyingKeyVar.html @@ -1,65 +1,66 @@ -VerifyingKeyVar in jf_plonk::circuit::plonk_verifier - Rust

Struct jf_plonk::circuit::plonk_verifier::VerifyingKeyVar

source ·
pub struct VerifyingKeyVar<E: Pairing> { /* private fields */ }
Expand description

Represent variable of a Plonk verifying key.

+VerifyingKeyVar in jf_plonk::circuit::plonk_verifier - Rust

Struct jf_plonk::circuit::plonk_verifier::VerifyingKeyVar

source ·
pub struct VerifyingKeyVar<E: Pairing> { /* private fields */ }
Expand description

Represent variable of a Plonk verifying key.

Implementations§

source§

impl<E: Pairing> VerifyingKeyVar<E>

source

pub fn new<F, P>( circuit: &mut PlonkCircuit<F>, verify_key: &VerifyingKey<E>, -) -> Result<Self, CircuitError>
where +) -> Result<Self, CircuitError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: PrimeField + SWToTEConParam, P: SWParam<BaseField = F>,

Create a variable for a Plonk verifying key.

-
source

pub fn to_vec(&self) -> Vec<Variable>

Convert to a list of variables.

+
source

pub fn to_vec(&self) -> Vec<Variable>

Convert to a list of variables.

source

pub fn partial_verify_circuit<F, P>( circuit: &mut PlonkCircuit<F>, beta_g: &TEPoint<F>, generator_g: &TEPoint<F>, - merged_vks: &[Self], + merged_vks: &[Self], shared_public_input_vars: &[FpElemVar<F>], batch_proof: &BatchProofVar<F>, blinding_factor: Variable, -) -> Result<(PointVariable, PointVariable), CircuitError>
where +) -> Result<(PointVariable, PointVariable), CircuitError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, P: SWParam<BaseField = F> + TEParam,

Circuit for partially verifying a batched proof without performing the pairing. Return the variables for the two group elements used in the final pairing. The public inputs are already in the form of FpElemVars.

-

Trait Implementations§

source§

impl<E: Clone + Pairing> Clone for VerifyingKeyVar<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> VerifyingKeyVar<E>

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<E: Debug + Pairing> Debug for VerifyingKeyVar<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for VerifyingKeyVar<E>
where - E::ScalarField: PartialEq,

source§

fn eq(&self, other: &VerifyingKeyVar<E>) -> 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<E: Eq + Pairing> Eq for VerifyingKeyVar<E>
where - E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for VerifyingKeyVar<E>

Auto Trait Implementations§

§

impl<E> Freeze for VerifyingKeyVar<E>

§

impl<E> RefUnwindSafe for VerifyingKeyVar<E>
where - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for VerifyingKeyVar<E>

§

impl<E> Sync for VerifyingKeyVar<E>

§

impl<E> Unpin for VerifyingKeyVar<E>
where - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for VerifyingKeyVar<E>
where - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Trait Implementations§

source§

impl<E: Clone + Pairing> Clone for VerifyingKeyVar<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> VerifyingKeyVar<E>

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<E: Debug + Pairing> Debug for VerifyingKeyVar<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for VerifyingKeyVar<E>
where + E::ScalarField: PartialEq,

source§

fn eq(&self, other: &VerifyingKeyVar<E>) -> 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<E: Eq + Pairing> Eq for VerifyingKeyVar<E>
where + E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for VerifyingKeyVar<E>

Auto Trait Implementations§

§

impl<E> Freeze for VerifyingKeyVar<E>

§

impl<E> RefUnwindSafe for VerifyingKeyVar<E>
where + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for VerifyingKeyVar<E>

§

impl<E> Sync for VerifyingKeyVar<E>

§

impl<E> Unpin for VerifyingKeyVar<E>
where + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for VerifyingKeyVar<E>
where + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html b/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html index c35e80d39..92ad2a65a 100644 --- a/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html +++ b/jf_plonk/circuit/plonk_verifier/trait.BatchableCircuit.html @@ -1,10 +1,10 @@ -BatchableCircuit in jf_plonk::circuit::plonk_verifier - Rust

Trait jf_plonk::circuit::plonk_verifier::BatchableCircuit

source ·
pub trait BatchableCircuit<F> {
+BatchableCircuit in jf_plonk::circuit::plonk_verifier - Rust

Trait jf_plonk::circuit::plonk_verifier::BatchableCircuit

source ·
pub trait BatchableCircuit<F> {
     // Required method
     fn aggregate_verify_keys<E, P>(
         &mut self,
         vk_type_a_vars: &[VerifyingKeyVar<E>],
         vk_type_b_vars: &[VerifyingKeyVar<E>],
-    ) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
+    ) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
        where E: Pairing,
              P: TEParam<BaseField = F>;
 }
Expand description

Plonk Circuit that support batch verification

@@ -12,15 +12,15 @@ &mut self, vk_type_a_vars: &[VerifyingKeyVar<E>], vk_type_b_vars: &[VerifyingKeyVar<E>], -) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where +) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where E: Pairing, P: TEParam<BaseField = F>,

Aggregate verification keys

-

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<F> BatchableCircuit<F> for PlonkCircuit<F>
where +

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<F> BatchableCircuit<F> for PlonkCircuit<F>
where F: PrimeField,

Instances batching scheme related gates

source§

fn aggregate_verify_keys<E, P>( &mut self, vk_type_a_vars: &[VerifyingKeyVar<E>], vk_type_b_vars: &[VerifyingKeyVar<E>], -) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where +) -> Result<Vec<VerifyingKeyVar<E>>, CircuitError>
where E: Pairing, P: TEParam<BaseField = F>,

Implementors§

\ No newline at end of file diff --git a/jf_plonk/circuit/transcript/index.html b/jf_plonk/circuit/transcript/index.html index b3b74ddd5..4d9f29dc1 100644 --- a/jf_plonk/circuit/transcript/index.html +++ b/jf_plonk/circuit/transcript/index.html @@ -1,4 +1,4 @@ -jf_plonk::circuit::transcript - Rust

Module jf_plonk::circuit::transcript

source ·
Expand description

Implementing native circuit for rescue transcript

+jf_plonk::circuit::transcript - Rust

Module jf_plonk::circuit::transcript

source ·
Expand description

Implementing native circuit for rescue transcript

Structs§

  • Struct of variables representing a Rescue transcript type, including STATE_SIZE variables for the state, and a vector of variables for the transcript.
\ No newline at end of file diff --git a/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html b/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html index f9d2004b5..c01c6e3d0 100644 --- a/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html +++ b/jf_plonk/circuit/transcript/struct.RescueTranscriptVar.html @@ -1,32 +1,32 @@ -RescueTranscriptVar in jf_plonk::circuit::transcript - Rust

Struct jf_plonk::circuit::transcript::RescueTranscriptVar

source ·
pub struct RescueTranscriptVar<F: RescueParameter> { /* private fields */ }
Expand description

Struct of variables representing a Rescue transcript type, including +RescueTranscriptVar in jf_plonk::circuit::transcript - Rust

Struct jf_plonk::circuit::transcript::RescueTranscriptVar

source ·
pub struct RescueTranscriptVar<F: RescueParameter> { /* private fields */ }
Expand description

Struct of variables representing a Rescue transcript type, including STATE_SIZE variables for the state, and a vector of variables for the transcript.

-

Auto Trait Implementations§

§

impl<F> Freeze for RescueTranscriptVar<F>

§

impl<F> RefUnwindSafe for RescueTranscriptVar<F>
where - F: RefUnwindSafe,

§

impl<F> Send for RescueTranscriptVar<F>

§

impl<F> Sync for RescueTranscriptVar<F>

§

impl<F> Unpin for RescueTranscriptVar<F>
where - F: Unpin,

§

impl<F> UnwindSafe for RescueTranscriptVar<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Auto Trait Implementations§

§

impl<F> Freeze for RescueTranscriptVar<F>

§

impl<F> RefUnwindSafe for RescueTranscriptVar<F>
where + F: RefUnwindSafe,

§

impl<F> Send for RescueTranscriptVar<F>

§

impl<F> Sync for RescueTranscriptVar<F>

§

impl<F> Unpin for RescueTranscriptVar<F>
where + F: Unpin,

§

impl<F> UnwindSafe for RescueTranscriptVar<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/constants/constant.KECCAK256_STATE_SIZE.html b/jf_plonk/constants/constant.KECCAK256_STATE_SIZE.html index 3bea0dd64..baa6507e7 100644 --- a/jf_plonk/constants/constant.KECCAK256_STATE_SIZE.html +++ b/jf_plonk/constants/constant.KECCAK256_STATE_SIZE.html @@ -1,2 +1,2 @@ -KECCAK256_STATE_SIZE in jf_plonk::constants - Rust

Constant jf_plonk::constants::KECCAK256_STATE_SIZE

source ·
pub const KECCAK256_STATE_SIZE: usize = 32;
Expand description

Keccak-256 have a 32 byte state size.

+KECCAK256_STATE_SIZE in jf_plonk::constants - Rust

Constant jf_plonk::constants::KECCAK256_STATE_SIZE

source ·
pub const KECCAK256_STATE_SIZE: usize = 32;
Expand description

Keccak-256 have a 32 byte state size.

\ No newline at end of file diff --git a/jf_plonk/constants/index.html b/jf_plonk/constants/index.html index d2c4597f9..08c43d62e 100644 --- a/jf_plonk/constants/index.html +++ b/jf_plonk/constants/index.html @@ -1,2 +1,2 @@ -jf_plonk::constants - Rust

Module jf_plonk::constants

source ·
Expand description

Crate wide constants.

+jf_plonk::constants - Rust

Module jf_plonk::constants

source ·
Expand description

Crate wide constants.

Constants§

\ No newline at end of file diff --git a/jf_plonk/enum.PlonkType.html b/jf_plonk/enum.PlonkType.html index 5fff29499..c8a9ed5a6 100644 --- a/jf_plonk/enum.PlonkType.html +++ b/jf_plonk/enum.PlonkType.html @@ -1,43 +1,45 @@ -PlonkType in jf_plonk - Rust

Enum jf_plonk::PlonkType

source ·
pub enum PlonkType {
+PlonkType in jf_plonk - Rust

Enum jf_plonk::PlonkType

source ·
pub enum PlonkType {
     TurboPlonk,
     UltraPlonk,
 }
Expand description

Enum for each type of Plonk scheme.

Variants§

§

TurboPlonk

TurboPlonk

§

UltraPlonk

TurboPlonk that supports Plookup

-

Trait Implementations§

source§

impl Clone for PlonkType

source§

fn clone(&self) -> PlonkType

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 PlonkType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Hash for PlonkType

source§

fn hash<__H>(&self, state: &mut __H)
where - __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 - H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PlonkType

source§

fn eq(&self, other: &PlonkType) -> 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 PlonkType

source§

impl Eq for PlonkType

source§

impl StructuralPartialEq for PlonkType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Trait Implementations§

source§

impl Clone for PlonkType

source§

fn clone(&self) -> PlonkType

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 PlonkType

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Hash for PlonkType

source§

fn hash<__H>(&self, state: &mut __H)
where + __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 + H: Hasher, + Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq for PlonkType

source§

fn eq(&self, other: &PlonkType) -> 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 PlonkType

source§

impl Eq for PlonkType

source§

impl StructuralPartialEq for PlonkType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/errors/enum.PlonkError.html b/jf_plonk/errors/enum.PlonkError.html index 5c93810bb..505c1c3c2 100644 --- a/jf_plonk/errors/enum.PlonkError.html +++ b/jf_plonk/errors/enum.PlonkError.html @@ -1,4 +1,4 @@ -PlonkError in jf_plonk::errors - Rust

Enum jf_plonk::errors::PlonkError

source ·
pub enum PlonkError {
+PlonkError in jf_plonk::errors - Rust

Enum jf_plonk::errors::PlonkError

source ·
pub enum PlonkError {
 
Show 15 variants IndexTooLarge, DomainCreationError, IndexError, @@ -6,11 +6,11 @@ SnarkError(SnarkError), PCSError(PCSError), CircuitError(CircuitError), - IoError(Error), + IoError(Error), SerializationError(SerializationError), WrongProof, RescueError(RescueError), - InvalidParameters(String), + InvalidParameters(String), NonNativeFieldOverflow, IteratorOutOfRange, PublicInputsDoNotMatch, @@ -22,41 +22,41 @@
§

SnarkError(SnarkError)

An error in the Plonk SNARK logic: {0}

§

PCSError(PCSError)

An error in the underlying polynomial commitment: {0}

§

CircuitError(CircuitError)

An error in the Plonk circuit: {0}

-
§

IoError(Error)

An error during IO: {0}

+
§

IoError(Error)

An error during IO: {0}

§

SerializationError(SerializationError)

An error during (de)serialization

§

WrongProof

Plonk proof verification failed due to wrong proof

§

RescueError(RescueError)

Rescue Error

-
§

InvalidParameters(String)

Invalid parameters

+
§

InvalidParameters(String)

Invalid parameters

§

NonNativeFieldOverflow

Non-native field overflow

§

IteratorOutOfRange

Iterator out of range

§

PublicInputsDoNotMatch

Public inputs for partial verification circuit do not match

-

Trait Implementations§

source§

impl Debug for PlonkError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PlonkError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PlonkError

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<CircuitError> for PlonkError

source§

fn from(e: CircuitError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for PlonkError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for PlonkError

source§

fn from(e: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<PlonkError> for CircuitError

source§

fn from(e: PlonkError) -> Self

Converts to this type from the input type.
source§

impl From<RescueError> for PlonkError

source§

fn from(e: RescueError) -> Self

Converts to this type from the input type.
source§

impl From<SerializationError> for PlonkError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where - T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method +

Trait Implementations§

source§

impl Debug for PlonkError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for PlonkError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Error for PlonkError

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<CircuitError> for PlonkError

source§

fn from(e: CircuitError) -> Self

Converts to this type from the input type.
source§

impl From<Error> for PlonkError

source§

fn from(e: Error) -> Self

Converts to this type from the input type.
source§

impl From<PCSError> for PlonkError

source§

fn from(e: PCSError) -> Self

Converts to this type from the input type.
source§

impl From<PlonkError> for CircuitError

source§

fn from(e: PlonkError) -> Self

Converts to this type from the input type.
source§

impl From<RescueError> for PlonkError

source§

fn from(e: RescueError) -> Self

Converts to this type from the input type.
source§

impl From<SerializationError> for PlonkError

source§

fn from(e: SerializationError) -> Self

Converts to this type from the input type.
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AsErrorSource for T
where + T: Error + 'static,

§

fn as_error_source(&self) -> &(dyn Error + 'static)

For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +receivers.
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/errors/enum.SnarkError.html b/jf_plonk/errors/enum.SnarkError.html index 29849d0c4..1d02647e1 100644 --- a/jf_plonk/errors/enum.SnarkError.html +++ b/jf_plonk/errors/enum.SnarkError.html @@ -1,35 +1,35 @@ -SnarkError in jf_plonk::errors - Rust

Enum jf_plonk::errors::SnarkError

source ·
pub enum SnarkError {
-    WrongQuotientPolyDegree(usize, usize),
-    ParameterError(String),
+SnarkError in jf_plonk::errors - Rust

Enum jf_plonk::errors::SnarkError

source ·
pub enum SnarkError {
+    WrongQuotientPolyDegree(usize, usize),
+    ParameterError(String),
     SnarkLookupUnsupported,
 }
Expand description

A enum specifying the possible failure modes of the underlying SNARK.

-

Variants§

§

WrongQuotientPolyDegree(usize, usize)

Suspect: circuit is not satisfied. The quotient polynomial has wrong degree: {0}, expected: {1}.

-
§

ParameterError(String)

Invalid parameters: {0}

+

Variants§

§

WrongQuotientPolyDegree(usize, usize)

Suspect: circuit is not satisfied. The quotient polynomial has wrong degree: {0}, expected: {1}.

+
§

ParameterError(String)

Invalid parameters: {0}

§

SnarkLookupUnsupported

The SNARK does not support lookup

-

Trait Implementations§

source§

impl Debug for SnarkError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SnarkError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Trait Implementations§

source§

impl Debug for SnarkError

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Display for SnarkError

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<SnarkError> for PlonkError

source§

fn from(e: SnarkError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/errors/index.html b/jf_plonk/errors/index.html index 5eeedb238..66109b110 100644 --- a/jf_plonk/errors/index.html +++ b/jf_plonk/errors/index.html @@ -1,2 +1,2 @@ -jf_plonk::errors - Rust

Module jf_plonk::errors

source ·
Expand description

Error module.

+jf_plonk::errors - Rust

Module jf_plonk::errors

source ·
Expand description

Error module.

Enums§

  • A enum specifying the possible failure modes of the Plonk.
  • A enum specifying the possible failure modes of the underlying SNARK.
\ No newline at end of file diff --git a/jf_plonk/index.html b/jf_plonk/index.html index ab5170756..0bc4d80e2 100644 --- a/jf_plonk/index.html +++ b/jf_plonk/index.html @@ -1,3 +1,3 @@ -jf_plonk - Rust

Crate jf_plonk

source ·
Expand description

A Rust Implementation of the Plonk ZKP System and Extensions.

+jf_plonk - Rust

Crate jf_plonk

source ·
Expand description

A Rust Implementation of the Plonk ZKP System and Extensions.

Re-exports§

Modules§

Enums§

\ No newline at end of file diff --git a/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html b/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html index c2f9f2350..4b1c979fe 100644 --- a/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html +++ b/jf_plonk/proof_system/batch_arg/fn.build_batch_proof_and_vks_for_test.html @@ -1,9 +1,9 @@ -build_batch_proof_and_vks_for_test in jf_plonk::proof_system::batch_arg - Rust
pub fn build_batch_proof_and_vks_for_test<E, F, P, R, T>(
-    rng: &mut R,
+build_batch_proof_and_vks_for_test in jf_plonk::proof_system::batch_arg - Rust
pub fn build_batch_proof_and_vks_for_test<E, F, P, R, T>(
+    rng: &mut R,
     srs: &UniversalSrs<E>,
-    num_instances: usize,
+    num_instances: usize,
     shared_public_input: E::ScalarField,
-) -> Result<(BatchProof<E>, Vec<VerifyingKey<E>>, Vec<VerifyingKey<E>>), PlonkError>
where +) -> Result<(BatchProof<E>, Vec<VerifyingKey<E>>, Vec<VerifyingKey<E>>), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>, diff --git a/jf_plonk/proof_system/batch_arg/index.html b/jf_plonk/proof_system/batch_arg/index.html index f15ba8c77..2ee9f7266 100644 --- a/jf_plonk/proof_system/batch_arg/index.html +++ b/jf_plonk/proof_system/batch_arg/index.html @@ -1,4 +1,4 @@ -jf_plonk::proof_system::batch_arg - Rust

Module jf_plonk::proof_system::batch_arg

source ·
Expand description

An argument system that proves/verifies multiple instances in a batch.

+jf_plonk::proof_system::batch_arg - Rust

Module jf_plonk::proof_system::batch_arg

source ·
Expand description

An argument system that proves/verifies multiple instances in a batch.

Structs§

  • A batching argument.
  • A circuit instance that consists of the corresponding proving key/verification key/circuit.

Functions§

\ No newline at end of file diff --git a/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html b/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html index db1dcfd09..f4e40c1d6 100644 --- a/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html +++ b/jf_plonk/proof_system/batch_arg/struct.BatchArgument.html @@ -1,4 +1,4 @@ -BatchArgument in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::BatchArgument

source ·
pub struct BatchArgument<E: Pairing>(/* private fields */);
Expand description

A batching argument.

+BatchArgument in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::BatchArgument

source ·
pub struct BatchArgument<E: Pairing>(/* private fields */);
Expand description

A batching argument.

Implementations§

source§

impl<E, F, P> BatchArgument<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, @@ -6,12 +6,12 @@ srs: &UniversalSrs<E>, circuit: PlonkCircuit<E::ScalarField>, circuit_type: MergeableCircuitType, -) -> Result<Instance<E>, PlonkError>

Setup the circuit and the proving key for a (mergeable) instance.

+) -> Result<Instance<E>, PlonkError>

Setup the circuit and the proving key for a (mergeable) instance.

source

pub fn batch_prove<R, T>( - prng: &mut R, + prng: &mut R, instances_type_a: &[Instance<E>], instances_type_b: &[Instance<E>], -) -> Result<BatchProof<E>, PlonkError>
where +) -> Result<BatchProof<E>, PlonkError>
where R: CryptoRng + RngCore, T: PlonkTranscript<F>,

Prove satisfiability of multiple instances in a batch.

source

pub fn partial_verify<T>( @@ -21,45 +21,45 @@ shared_public_input: &[E::ScalarField], batch_proof: &BatchProof<E>, blinding_factor: E::ScalarField, -) -> Result<(E::G1, E::G1), PlonkError>
where +) -> Result<(E::G1, E::G1), PlonkError>
where T: PlonkTranscript<F>,

Partially verify a batched proof without performing the pairing. Return the two group elements used in the final pairing.

source§

impl<E> BatchArgument<E>
where E: Pairing,

source

pub fn aggregate_verify_keys( vks_type_a: &[&VerifyingKey<E>], vks_type_b: &[&VerifyingKey<E>], -) -> Result<Vec<VerifyingKey<E>>, PlonkError>

Aggregate verification keys

+) -> Result<Vec<VerifyingKey<E>>, PlonkError>

Aggregate verification keys

source

pub fn decide( open_key: &OpenKey<E>, inner1: E::G1, inner2: E::G1, -) -> Result<bool, PlonkError>

Perform the final pairing to verify the proof.

-

Auto Trait Implementations§

§

impl<E> Freeze for BatchArgument<E>

§

impl<E> RefUnwindSafe for BatchArgument<E>
where - E: RefUnwindSafe,

§

impl<E> Send for BatchArgument<E>

§

impl<E> Sync for BatchArgument<E>

§

impl<E> Unpin for BatchArgument<E>
where - E: Unpin,

§

impl<E> UnwindSafe for BatchArgument<E>
where - E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> Result<bool, PlonkError>

Perform the final pairing to verify the proof.

+

Auto Trait Implementations§

§

impl<E> Freeze for BatchArgument<E>

§

impl<E> RefUnwindSafe for BatchArgument<E>
where + E: RefUnwindSafe,

§

impl<E> Send for BatchArgument<E>

§

impl<E> Sync for BatchArgument<E>

§

impl<E> Unpin for BatchArgument<E>
where + E: Unpin,

§

impl<E> UnwindSafe for BatchArgument<E>
where + E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/batch_arg/struct.Instance.html b/jf_plonk/proof_system/batch_arg/struct.Instance.html index b592da9da..b49bf4301 100644 --- a/jf_plonk/proof_system/batch_arg/struct.Instance.html +++ b/jf_plonk/proof_system/batch_arg/struct.Instance.html @@ -1,37 +1,38 @@ -Instance in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::Instance

source ·
pub struct Instance<E: Pairing> { /* private fields */ }
Expand description

A circuit instance that consists of the corresponding proving +Instance in jf_plonk::proof_system::batch_arg - Rust

Struct jf_plonk::proof_system::batch_arg::Instance

source ·
pub struct Instance<E: Pairing> { /* private fields */ }
Expand description

A circuit instance that consists of the corresponding proving key/verification key/circuit.

Implementations§

source§

impl<E: Pairing> Instance<E>

source

pub fn verify_key_ref(&self) -> &VerifyingKey<E>

Get verification key by reference.

source

pub fn circuit_mut_ref(&mut self) -> &mut PlonkCircuit<E::ScalarField>

Get mutable circuit by reference.

-

Trait Implementations§

source§

impl<E: Clone + Pairing> Clone for Instance<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> Instance<E>

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

Auto Trait Implementations§

§

impl<E> Freeze for Instance<E>
where - <E as Pairing>::ScalarField: Freeze, - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> !RefUnwindSafe for Instance<E>

§

impl<E> !Send for Instance<E>

§

impl<E> !Sync for Instance<E>

§

impl<E> Unpin for Instance<E>
where - <E as Pairing>::ScalarField: Unpin, - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin,

§

impl<E> !UnwindSafe for Instance<E>

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

Trait Implementations§

source§

impl<E: Clone + Pairing> Clone for Instance<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> Instance<E>

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

Auto Trait Implementations§

§

impl<E> Freeze for Instance<E>
where + <E as Pairing>::ScalarField: Freeze, + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> !RefUnwindSafe for Instance<E>

§

impl<E> !Send for Instance<E>

§

impl<E> !Sync for Instance<E>

§

impl<E> Unpin for Instance<E>
where + <E as Pairing>::ScalarField: Unpin, + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin,

§

impl<E> !UnwindSafe for Instance<E>

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/index.html b/jf_plonk/proof_system/index.html index fb818ea00..cc8cd33fd 100644 --- a/jf_plonk/proof_system/index.html +++ b/jf_plonk/proof_system/index.html @@ -1,2 +1,2 @@ -jf_plonk::proof_system - Rust

Module jf_plonk::proof_system

source ·
Expand description

Interfaces for Plonk-based proof systems

+jf_plonk::proof_system - Rust

Module jf_plonk::proof_system

source ·
Expand description

Interfaces for Plonk-based proof systems

Modules§

  • An argument system that proves/verifies multiple instances in a batch.
  • Data structures used in Plonk proof systems

Structs§

Traits§

\ No newline at end of file diff --git a/jf_plonk/proof_system/struct.PlonkKzgSnark.html b/jf_plonk/proof_system/struct.PlonkKzgSnark.html index 99d06acd3..d3362d3e5 100644 --- a/jf_plonk/proof_system/struct.PlonkKzgSnark.html +++ b/jf_plonk/proof_system/struct.PlonkKzgSnark.html @@ -1,13 +1,13 @@ -PlonkKzgSnark in jf_plonk::proof_system - Rust

Struct jf_plonk::proof_system::PlonkKzgSnark

source ·
pub struct PlonkKzgSnark<E: Pairing>(/* private fields */);
Expand description

A Plonk instantiated with KZG PCS

+PlonkKzgSnark in jf_plonk::proof_system - Rust

Struct jf_plonk::proof_system::PlonkKzgSnark

source ·
pub struct PlonkKzgSnark<E: Pairing>(/* private fields */);
Expand description

A Plonk instantiated with KZG PCS

Implementations§

source§

impl<E, F, P> PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

source

pub fn new() -> Self

A new Plonk KZG SNARK

source

pub fn batch_prove<C, R, T>( - prng: &mut R, - circuits: &[&C], + prng: &mut R, + circuits: &[&C], prove_keys: &[&ProvingKey<E>], -) -> Result<BatchProof<E>, PlonkError>
where +) -> Result<BatchProof<E>, PlonkError>
where C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<F>,

Generate an aggregated Plonk proof for multiple instances.

@@ -15,29 +15,29 @@ verify_keys: &[&VerifyingKey<E>], public_inputs: &[&[E::ScalarField]], batch_proof: &BatchProof<E>, -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where T: PlonkTranscript<F>,

Verify a single aggregated Plonk proof.

source

pub fn batch_verify<T>( verify_keys: &[&VerifyingKey<E>], public_inputs: &[&[E::ScalarField]], proofs: &[&Proof<E>], - extra_transcript_init_msgs: &[Option<Vec<u8>>], -) -> Result<(), PlonkError>
where + extra_transcript_init_msgs: &[Option<Vec<u8>>], +) -> Result<(), PlonkError>
where T: PlonkTranscript<F>,

Batch verify multiple SNARK proofs (w.r.t. different verifying keys).

Trait Implementations§

source§

impl<E, F, P> UniversalSNARK<E> for PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

source§

fn preprocess<C: Arithmetization<E::ScalarField>>( srs: &Self::UniversalSRS, - circuit: &C, -) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Input a circuit and the SRS, precompute the proving key and verification + circuit: &C, +) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Input a circuit and the SRS, precompute the proving key and verification key.

source§

fn prove<C, R, T>( - rng: &mut R, - circuit: &C, + rng: &mut R, + circuit: &C, prove_key: &Self::ProvingKey, - extra_transcript_init_msg: Option<Vec<u8>>, -) -> Result<Self::Proof, Self::Error>
where + extra_transcript_init_msg: Option<Vec<u8>>, +) -> Result<Self::Proof, Self::Error>
where C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<F>,

Compute a Plonk proof. @@ -51,42 +51,42 @@ verify_key: &Self::VerifyingKey, public_input: &[E::ScalarField], proof: &Self::Proof, - extra_transcript_init_msg: Option<Vec<u8>>, -) -> Result<(), Self::Error>

where + extra_transcript_init_msg: Option<Vec<u8>>, +) -> Result<(), Self::Error>
where T: PlonkTranscript<F>,
Verify a SNARK proof proof of the circuit circuit, with respect to the public input pub_input. Read more
source§

fn universal_setup<R: RngCore + CryptoRng>( - _max_degree: usize, - _rng: &mut R, -) -> Result<Self::UniversalSRS, Self::Error>

Generate the universal SRS for the argument system. + _max_degree: usize, + _rng: &mut R, +) -> Result<Self::UniversalSRS, Self::Error>
Generate the universal SRS for the argument system. This setup is for trusted party to run, and mostly only used for testing purpose. In practice, a MPC flavor of the setup will be carried out to have higher assurance on the “toxic waste”/trapdoor being thrown -away to ensure soundness of the argument system.

Auto Trait Implementations§

§

impl<E> Freeze for PlonkKzgSnark<E>

§

impl<E> RefUnwindSafe for PlonkKzgSnark<E>
where - E: RefUnwindSafe,

§

impl<E> Send for PlonkKzgSnark<E>

§

impl<E> Sync for PlonkKzgSnark<E>

§

impl<E> Unpin for PlonkKzgSnark<E>
where - E: Unpin,

§

impl<E> UnwindSafe for PlonkKzgSnark<E>
where - E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +away to ensure soundness of the argument system.

Auto Trait Implementations§

§

impl<E> Freeze for PlonkKzgSnark<E>

§

impl<E> RefUnwindSafe for PlonkKzgSnark<E>
where + E: RefUnwindSafe,

§

impl<E> Send for PlonkKzgSnark<E>

§

impl<E> Sync for PlonkKzgSnark<E>

§

impl<E> Unpin for PlonkKzgSnark<E>
where + E: Unpin,

§

impl<E> UnwindSafe for PlonkKzgSnark<E>
where + E: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/index.html b/jf_plonk/proof_system/structs/index.html index 49b7cccee..cec5183e7 100644 --- a/jf_plonk/proof_system/structs/index.html +++ b/jf_plonk/proof_system/structs/index.html @@ -1,4 +1,4 @@ -jf_plonk::proof_system::structs - Rust

Module jf_plonk::proof_system::structs

source ·
Expand description

Data structures used in Plonk proof systems

+jf_plonk::proof_system::structs - Rust

Module jf_plonk::proof_system::structs

source ·
Expand description

Data structures used in Plonk proof systems

Structs§

source§

impl<E: Clone + Pairing> Clone for BatchProof<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> BatchProof<E>

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<E: Debug + Pairing> Debug for BatchProof<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E: Pairing> Deserialize<'de> for BatchProof<E>

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<E: Pairing> Display for BatchProof<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> From<&BatchProof<E>> for TaggedBase64

source§

fn from(x: &BatchProof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<BatchProof<E>> for TaggedBase64

source§

fn from(x: BatchProof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<Proof<E>> for BatchProof<E>

source§

fn from(proof: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> FromStr for BatchProof<E>

§

type Err = Tb64Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<E> Hash for BatchProof<E>
where + E: Pairing,

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E> PartialEq for BatchProof<E>
where + E: PartialEq + Pairing,

source§

fn eq(&self, other: &Self) -> 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<E: Pairing> Serialize for BatchProof<E>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E: Pairing> Tagged for BatchProof<E>

source§

impl<E: Pairing> TryFrom<&TaggedBase64> for BatchProof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: &TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> TryFrom<TaggedBase64> for BatchProof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> Valid for BatchProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for BatchProof<E>
where + E::ScalarField: Eq,

Auto Trait Implementations§

§

impl<E> Freeze for BatchProof<E>
where + <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for BatchProof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for BatchProof<E>

§

impl<E> Sync for BatchProof<E>

§

impl<E> Unpin for BatchProof<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for BatchProof<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.PlookupEvaluations.html b/jf_plonk/proof_system/structs/struct.PlookupEvaluations.html index 6a3bb6593..10a75c410 100644 --- a/jf_plonk/proof_system/structs/struct.PlookupEvaluations.html +++ b/jf_plonk/proof_system/structs/struct.PlookupEvaluations.html @@ -1,67 +1,68 @@ -PlookupEvaluations in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupEvaluations

source ·
pub struct PlookupEvaluations<F: Field> { /* private fields */ }
Expand description

A struct that stores the polynomial evaluations in a Plookup argument proof.

-

Trait Implementations§

source§

impl<F: Field> CanonicalDeserialize for PlookupEvaluations<F>

source§

fn deserialize_with_mode<R: Read>( +PlookupEvaluations in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupEvaluations

source ·
pub struct PlookupEvaluations<F: Field> { /* private fields */ }
Expand description

A struct that stores the polynomial evaluations in a Plookup argument proof.

+

Trait Implementations§

source§

impl<F: Field> CanonicalDeserialize for PlookupEvaluations<F>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<F: Field> CanonicalSerialize for PlookupEvaluations<F>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<F: Field> CanonicalSerialize for PlookupEvaluations<F>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<F: Clone + Field> Clone for PlookupEvaluations<F>

source§

fn clone(&self) -> PlookupEvaluations<F>

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<F: Debug + Field> Debug for PlookupEvaluations<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Hash + Field> Hash for PlookupEvaluations<F>

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<F: PartialEq + Field> PartialEq for PlookupEvaluations<F>

source§

fn eq(&self, other: &PlookupEvaluations<F>) -> 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<F: Field> Valid for PlookupEvaluations<F>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<F: Eq + Field> Eq for PlookupEvaluations<F>

source§

impl<F: Field> StructuralPartialEq for PlookupEvaluations<F>

Auto Trait Implementations§

§

impl<F> Freeze for PlookupEvaluations<F>
where - F: Freeze,

§

impl<F> RefUnwindSafe for PlookupEvaluations<F>
where - F: RefUnwindSafe,

§

impl<F> Send for PlookupEvaluations<F>

§

impl<F> Sync for PlookupEvaluations<F>

§

impl<F> Unpin for PlookupEvaluations<F>
where - F: Unpin,

§

impl<F> UnwindSafe for PlookupEvaluations<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<F: Clone + Field> Clone for PlookupEvaluations<F>

source§

fn clone(&self) -> PlookupEvaluations<F>

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<F: Debug + Field> Debug for PlookupEvaluations<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: Hash + Field> Hash for PlookupEvaluations<F>

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<F: PartialEq + Field> PartialEq for PlookupEvaluations<F>

source§

fn eq(&self, other: &PlookupEvaluations<F>) -> 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<F: Field> Valid for PlookupEvaluations<F>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<F: Eq + Field> Eq for PlookupEvaluations<F>

source§

impl<F: Field> StructuralPartialEq for PlookupEvaluations<F>

Auto Trait Implementations§

§

impl<F> Freeze for PlookupEvaluations<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for PlookupEvaluations<F>
where + F: RefUnwindSafe,

§

impl<F> Send for PlookupEvaluations<F>

§

impl<F> Sync for PlookupEvaluations<F>

§

impl<F> Unpin for PlookupEvaluations<F>
where + F: Unpin,

§

impl<F> UnwindSafe for PlookupEvaluations<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.PlookupProof.html b/jf_plonk/proof_system/structs/struct.PlookupProof.html index 3b193aaca..539588978 100644 --- a/jf_plonk/proof_system/structs/struct.PlookupProof.html +++ b/jf_plonk/proof_system/structs/struct.PlookupProof.html @@ -1,77 +1,78 @@ -PlookupProof in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupProof

source ·
pub struct PlookupProof<E: Pairing> { /* private fields */ }
Expand description

A Plookup argument proof.

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupProof<E>

source§

fn deserialize_with_mode<R: Read>( +PlookupProof in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupProof

source ·
pub struct PlookupProof<E: Pairing> { /* private fields */ }
Expand description

A Plookup argument proof.

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupProof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupProof<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupProof<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupProof<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> PlookupProof<E>

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<E: Debug + Pairing> Debug for PlookupProof<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E> Hash for PlookupProof<E>
where - E: Pairing,

source§

fn hash<__HE>(&self, __state: &mut __HE)
where - __HE: Hasher,

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<E> PartialEq for PlookupProof<E>
where - E: PartialEq + Pairing,

source§

fn eq(&self, other: &Self) -> 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<E: Pairing> Valid for PlookupProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupProof<E>
where - E::ScalarField: Eq,

Auto Trait Implementations§

§

impl<E> Freeze for PlookupProof<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::ScalarField: Freeze,

§

impl<E> RefUnwindSafe for PlookupProof<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for PlookupProof<E>

§

impl<E> Sync for PlookupProof<E>

§

impl<E> Unpin for PlookupProof<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for PlookupProof<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupProof<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> PlookupProof<E>

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<E: Debug + Pairing> Debug for PlookupProof<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E> Hash for PlookupProof<E>
where + E: Pairing,

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E> PartialEq for PlookupProof<E>
where + E: PartialEq + Pairing,

source§

fn eq(&self, other: &Self) -> 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<E: Pairing> Valid for PlookupProof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupProof<E>
where + E::ScalarField: Eq,

Auto Trait Implementations§

§

impl<E> Freeze for PlookupProof<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::ScalarField: Freeze,

§

impl<E> RefUnwindSafe for PlookupProof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for PlookupProof<E>

§

impl<E> Sync for PlookupProof<E>

§

impl<E> Unpin for PlookupProof<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for PlookupProof<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.PlookupProvingKey.html b/jf_plonk/proof_system/structs/struct.PlookupProvingKey.html index fea41ede8..dccf71b63 100644 --- a/jf_plonk/proof_system/structs/struct.PlookupProvingKey.html +++ b/jf_plonk/proof_system/structs/struct.PlookupProvingKey.html @@ -1,69 +1,70 @@ -PlookupProvingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupProvingKey

source ·
pub struct PlookupProvingKey<E: Pairing> { /* private fields */ }
Expand description

Preprocessed prover parameters used to compute Plookup proofs for a certain +PlookupProvingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupProvingKey

source ·
pub struct PlookupProvingKey<E: Pairing> { /* private fields */ }
Expand description

Preprocessed prover parameters used to compute Plookup proofs for a certain circuit.

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupProvingKey<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupProvingKey<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupProvingKey<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupProvingKey<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupProvingKey<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> PlookupProvingKey<E>

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<E: Debug + Pairing> Debug for PlookupProvingKey<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for PlookupProvingKey<E>
where - E::ScalarField: PartialEq,

source§

fn eq(&self, other: &PlookupProvingKey<E>) -> 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<E: Pairing> Valid for PlookupProvingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupProvingKey<E>
where - E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for PlookupProvingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for PlookupProvingKey<E>

§

impl<E> RefUnwindSafe for PlookupProvingKey<E>
where - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for PlookupProvingKey<E>

§

impl<E> Sync for PlookupProvingKey<E>

§

impl<E> Unpin for PlookupProvingKey<E>
where - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for PlookupProvingKey<E>
where - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupProvingKey<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> PlookupProvingKey<E>

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<E: Debug + Pairing> Debug for PlookupProvingKey<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for PlookupProvingKey<E>
where + E::ScalarField: PartialEq,

source§

fn eq(&self, other: &PlookupProvingKey<E>) -> 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<E: Pairing> Valid for PlookupProvingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupProvingKey<E>
where + E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for PlookupProvingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for PlookupProvingKey<E>

§

impl<E> RefUnwindSafe for PlookupProvingKey<E>
where + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for PlookupProvingKey<E>

§

impl<E> Sync for PlookupProvingKey<E>

§

impl<E> Unpin for PlookupProvingKey<E>
where + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for PlookupProvingKey<E>
where + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.PlookupVerifyingKey.html b/jf_plonk/proof_system/structs/struct.PlookupVerifyingKey.html index 6884ebed4..15b892865 100644 --- a/jf_plonk/proof_system/structs/struct.PlookupVerifyingKey.html +++ b/jf_plonk/proof_system/structs/struct.PlookupVerifyingKey.html @@ -1,66 +1,67 @@ -PlookupVerifyingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupVerifyingKey

source ·
pub struct PlookupVerifyingKey<E: Pairing> { /* private fields */ }
Expand description

Preprocessed verifier parameters used to verify Plookup proofs for a certain +PlookupVerifyingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::PlookupVerifyingKey

source ·
pub struct PlookupVerifyingKey<E: Pairing> { /* private fields */ }
Expand description

Preprocessed verifier parameters used to verify Plookup proofs for a certain circuit.

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupVerifyingKey<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for PlookupVerifyingKey<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupVerifyingKey<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for PlookupVerifyingKey<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupVerifyingKey<E>

source§

fn clone(&self) -> PlookupVerifyingKey<E>

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<E: Debug + Pairing> Debug for PlookupVerifyingKey<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for PlookupVerifyingKey<E>

source§

fn eq(&self, other: &PlookupVerifyingKey<E>) -> 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<E: Pairing> Valid for PlookupVerifyingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupVerifyingKey<E>

source§

impl<E: Pairing> StructuralPartialEq for PlookupVerifyingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for PlookupVerifyingKey<E>
where - <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for PlookupVerifyingKey<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for PlookupVerifyingKey<E>

§

impl<E> Sync for PlookupVerifyingKey<E>

§

impl<E> Unpin for PlookupVerifyingKey<E>
where - <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for PlookupVerifyingKey<E>
where - <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for PlookupVerifyingKey<E>

source§

fn clone(&self) -> PlookupVerifyingKey<E>

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<E: Debug + Pairing> Debug for PlookupVerifyingKey<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for PlookupVerifyingKey<E>

source§

fn eq(&self, other: &PlookupVerifyingKey<E>) -> 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<E: Pairing> Valid for PlookupVerifyingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for PlookupVerifyingKey<E>

source§

impl<E: Pairing> StructuralPartialEq for PlookupVerifyingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for PlookupVerifyingKey<E>
where + <E as Pairing>::G1Affine: Freeze,

§

impl<E> RefUnwindSafe for PlookupVerifyingKey<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe,

§

impl<E> Send for PlookupVerifyingKey<E>

§

impl<E> Sync for PlookupVerifyingKey<E>

§

impl<E> Unpin for PlookupVerifyingKey<E>
where + <E as Pairing>::G1Affine: Unpin,

§

impl<E> UnwindSafe for PlookupVerifyingKey<E>
where + <E as Pairing>::G1Affine: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.Proof.html b/jf_plonk/proof_system/structs/struct.Proof.html index 04db440ad..a5a8fd0c6 100644 --- a/jf_plonk/proof_system/structs/struct.Proof.html +++ b/jf_plonk/proof_system/structs/struct.Proof.html @@ -1,101 +1,102 @@ -Proof in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::Proof

source ·
pub struct Proof<E: Pairing> {
-    pub wires_poly_comms: Vec<Commitment<E>>,
+Proof in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::Proof

source ·
pub struct Proof<E: Pairing> {
+    pub wires_poly_comms: Vec<Commitment<E>>,
     pub prod_perm_poly_comm: Commitment<E>,
-    pub split_quot_poly_comms: Vec<Commitment<E>>,
+    pub split_quot_poly_comms: Vec<Commitment<E>>,
     pub opening_proof: Commitment<E>,
     pub shifted_opening_proof: Commitment<E>,
     pub poly_evals: ProofEvaluations<E::ScalarField>,
-    pub plookup_proof: Option<PlookupProof<E>>,
+    pub plookup_proof: Option<PlookupProof<E>>,
 }
Expand description

A Plonk SNARK proof.

-

Fields§

§wires_poly_comms: Vec<Commitment<E>>

Wire witness polynomials commitments.

+

Fields§

§wires_poly_comms: Vec<Commitment<E>>

Wire witness polynomials commitments.

§prod_perm_poly_comm: Commitment<E>

The polynomial commitment for the wire permutation argument.

-
§split_quot_poly_comms: Vec<Commitment<E>>

Split quotient polynomial commitments.

+
§split_quot_poly_comms: Vec<Commitment<E>>

Split quotient polynomial commitments.

§opening_proof: Commitment<E>

(Aggregated) proof of evaluations at challenge point zeta.

§shifted_opening_proof: Commitment<E>

(Aggregated) proof of evaluation at challenge point zeta * g where g is the root of unity.

§poly_evals: ProofEvaluations<E::ScalarField>

Polynomial evaluations.

-
§plookup_proof: Option<PlookupProof<E>>

The partial proof for Plookup argument

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for Proof<E>

§plookup_proof: Option<PlookupProof<E>>

The partial proof for Plookup argument

+

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for Proof<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for Proof<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for Proof<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for Proof<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> Proof<E>

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<E: Debug + Pairing> Debug for Proof<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E: Pairing> Deserialize<'de> for Proof<E>

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<E: Pairing> Display for Proof<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> From<&Proof<E>> for TaggedBase64

source§

fn from(x: &Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<Proof<E>> for BatchProof<E>

source§

fn from(proof: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<Proof<E>> for TaggedBase64

source§

fn from(x: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E, P> From<Proof<E>> for Vec<E::BaseField>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for Proof<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> Proof<E>

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<E: Debug + Pairing> Debug for Proof<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'de, E: Pairing> Deserialize<'de> for Proof<E>

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<E: Pairing> Display for Proof<E>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: Pairing> From<&Proof<E>> for TaggedBase64

source§

fn from(x: &Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<Proof<E>> for BatchProof<E>

source§

fn from(proof: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> From<Proof<E>> for TaggedBase64

source§

fn from(x: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E, P> From<Proof<E>> for Vec<E::BaseField>
where E: Pairing<G1Affine = Affine<P>>, - P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,

source§

fn from(proof: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> FromStr for Proof<E>

§

type Err = Tb64Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<E> Hash for Proof<E>
where - E: Pairing,

source§

fn hash<__HE>(&self, __state: &mut __HE)
where - __HE: Hasher,

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<E> PartialEq for Proof<E>
where - E: PartialEq + Pairing,

source§

fn eq(&self, other: &Self) -> 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<E: Pairing> Serialize for Proof<E>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where - __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E: Pairing> Tagged for Proof<E>

source§

impl<E: Pairing> TryFrom<&TaggedBase64> for Proof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: &TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> TryFrom<TaggedBase64> for Proof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E, P> TryFrom<Vec<<E as Pairing>::BaseField>> for Proof<E>
where + P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,

source§

fn from(proof: Proof<E>) -> Self

Converts to this type from the input type.
source§

impl<E: Pairing> FromStr for Proof<E>

§

type Err = Tb64Error

The associated error which can be returned from parsing.
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
source§

impl<E> Hash for Proof<E>
where + E: Pairing,

source§

fn hash<__HE>(&self, __state: &mut __HE)
where + __HE: Hasher,

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<E> PartialEq for Proof<E>
where + E: PartialEq + Pairing,

source§

fn eq(&self, other: &Self) -> 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<E: Pairing> Serialize for Proof<E>

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where + __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl<E: Pairing> Tagged for Proof<E>

source§

impl<E: Pairing> TryFrom<&TaggedBase64> for Proof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: &TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> TryFrom<TaggedBase64> for Proof<E>

§

type Error = Tb64Error

The type returned in the event of a conversion error.
source§

fn try_from(t: TaggedBase64) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E, P> TryFrom<Vec<<E as Pairing>::BaseField>> for Proof<E>
where E: Pairing<G1Affine = Affine<P>>, - P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,

§

type Error = SnarkError

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<E::BaseField>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> Valid for Proof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for Proof<E>
where - E::ScalarField: Eq,

Auto Trait Implementations§

§

impl<E> Freeze for Proof<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::ScalarField: Freeze,

§

impl<E> RefUnwindSafe for Proof<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for Proof<E>

§

impl<E> Sync for Proof<E>

§

impl<E> Unpin for Proof<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for Proof<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,

§

type Error = SnarkError

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<E::BaseField>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<E: Pairing> Valid for Proof<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for Proof<E>
where + E::ScalarField: Eq,

Auto Trait Implementations§

§

impl<E> Freeze for Proof<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::ScalarField: Freeze,

§

impl<E> RefUnwindSafe for Proof<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for Proof<E>

§

impl<E> Sync for Proof<E>

§

impl<E> Unpin for Proof<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for Proof<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where - T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where - V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where - T: for<'de> Deserialize<'de>,

\ No newline at end of file +otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where + T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where + V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> DeserializeOwned for T
where + T: for<'de> Deserialize<'de>,

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.ProofEvaluations.html b/jf_plonk/proof_system/structs/struct.ProofEvaluations.html index 963b8ed08..6dbab3f37 100644 --- a/jf_plonk/proof_system/structs/struct.ProofEvaluations.html +++ b/jf_plonk/proof_system/structs/struct.ProofEvaluations.html @@ -1,76 +1,77 @@ -ProofEvaluations in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::ProofEvaluations

source ·
pub struct ProofEvaluations<F: Field> {
-    pub wires_evals: Vec<F>,
-    pub wire_sigma_evals: Vec<F>,
+ProofEvaluations in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::ProofEvaluations

source ·
pub struct ProofEvaluations<F: Field> {
+    pub wires_evals: Vec<F>,
+    pub wire_sigma_evals: Vec<F>,
     pub perm_next_eval: F,
 }
Expand description

A struct that stores the polynomial evaluations in a Plonk proof.

-

Fields§

§wires_evals: Vec<F>

Wire witness polynomials evaluations at point zeta.

-
§wire_sigma_evals: Vec<F>

Extended permutation (sigma) polynomials evaluations at point zeta. +

Fields§

§wires_evals: Vec<F>

Wire witness polynomials evaluations at point zeta.

+
§wire_sigma_evals: Vec<F>

Extended permutation (sigma) polynomials evaluations at point zeta. We do not include the last sigma polynomial evaluation.

§perm_next_eval: F

Permutation product polynomial evaluation at point zeta * g.

-

Trait Implementations§

source§

impl<F: Field> CanonicalDeserialize for ProofEvaluations<F>

Trait Implementations§

source§

impl<F: Field> CanonicalDeserialize for ProofEvaluations<F>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<F: Field> CanonicalSerialize for ProofEvaluations<F>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<F: Field> CanonicalSerialize for ProofEvaluations<F>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<F: Clone + Field> Clone for ProofEvaluations<F>

source§

fn clone(&self) -> ProofEvaluations<F>

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<F: Debug + Field> Debug for ProofEvaluations<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F> Default for ProofEvaluations<F>
where - F: Field,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<F: Field> From<ProofEvaluations<F>> for Vec<F>

source§

fn from(evals: ProofEvaluations<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + Field> Hash for ProofEvaluations<F>

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<F: PartialEq + Field> PartialEq for ProofEvaluations<F>

source§

fn eq(&self, other: &ProofEvaluations<F>) -> 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<F: Field> TryFrom<Vec<F>> for ProofEvaluations<F>

§

type Error = SnarkError

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<F>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<F: Field> Valid for ProofEvaluations<F>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<F: Eq + Field> Eq for ProofEvaluations<F>

source§

impl<F: Field> StructuralPartialEq for ProofEvaluations<F>

Auto Trait Implementations§

§

impl<F> Freeze for ProofEvaluations<F>
where - F: Freeze,

§

impl<F> RefUnwindSafe for ProofEvaluations<F>
where - F: RefUnwindSafe,

§

impl<F> Send for ProofEvaluations<F>

§

impl<F> Sync for ProofEvaluations<F>

§

impl<F> Unpin for ProofEvaluations<F>
where - F: Unpin,

§

impl<F> UnwindSafe for ProofEvaluations<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<F: Clone + Field> Clone for ProofEvaluations<F>

source§

fn clone(&self) -> ProofEvaluations<F>

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<F: Debug + Field> Debug for ProofEvaluations<F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F> Default for ProofEvaluations<F>
where + F: Field,

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<F: Field> From<ProofEvaluations<F>> for Vec<F>

source§

fn from(evals: ProofEvaluations<F>) -> Self

Converts to this type from the input type.
source§

impl<F: Hash + Field> Hash for ProofEvaluations<F>

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<F: PartialEq + Field> PartialEq for ProofEvaluations<F>

source§

fn eq(&self, other: &ProofEvaluations<F>) -> 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<F: Field> TryFrom<Vec<F>> for ProofEvaluations<F>

§

type Error = SnarkError

The type returned in the event of a conversion error.
source§

fn try_from(value: Vec<F>) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl<F: Field> Valid for ProofEvaluations<F>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<F: Eq + Field> Eq for ProofEvaluations<F>

source§

impl<F: Field> StructuralPartialEq for ProofEvaluations<F>

Auto Trait Implementations§

§

impl<F> Freeze for ProofEvaluations<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for ProofEvaluations<F>
where + F: RefUnwindSafe,

§

impl<F> Send for ProofEvaluations<F>

§

impl<F> Sync for ProofEvaluations<F>

§

impl<F> Unpin for ProofEvaluations<F>
where + F: Unpin,

§

impl<F> UnwindSafe for ProofEvaluations<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.ProvingKey.html b/jf_plonk/proof_system/structs/struct.ProvingKey.html index 65cea2f6d..d54a6840d 100644 --- a/jf_plonk/proof_system/structs/struct.ProvingKey.html +++ b/jf_plonk/proof_system/structs/struct.ProvingKey.html @@ -1,81 +1,82 @@ -ProvingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::ProvingKey

source ·
pub struct ProvingKey<E: Pairing> {
+ProvingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::ProvingKey

source ·
pub struct ProvingKey<E: Pairing> {
     pub vk: VerifyingKey<E>,
     /* private fields */
 }
Expand description

Preprocessed prover parameters used to compute Plonk proofs for a certain circuit.

Fields§

§vk: VerifyingKey<E>

The verifying key. It is used by prover to initialize transcripts.

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for ProvingKey<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for ProvingKey<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for ProvingKey<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for ProvingKey<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for ProvingKey<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> ProvingKey<E>

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<E: Debug + Pairing> Debug for ProvingKey<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for ProvingKey<E>
where - E::ScalarField: PartialEq,

source§

fn eq(&self, other: &ProvingKey<E>) -> 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<E: Pairing> Valid for ProvingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for ProvingKey<E>
where - E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for ProvingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for ProvingKey<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for ProvingKey<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe, - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for ProvingKey<E>

§

impl<E> Sync for ProvingKey<E>

§

impl<E> Unpin for ProvingKey<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin, - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for ProvingKey<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe, - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for ProvingKey<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> ProvingKey<E>

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<E: Debug + Pairing> Debug for ProvingKey<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E: PartialEq + Pairing> PartialEq for ProvingKey<E>
where + E::ScalarField: PartialEq,

source§

fn eq(&self, other: &ProvingKey<E>) -> 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<E: Pairing> Valid for ProvingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for ProvingKey<E>
where + E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for ProvingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for ProvingKey<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for ProvingKey<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for ProvingKey<E>

§

impl<E> Sync for ProvingKey<E>

§

impl<E> Unpin for ProvingKey<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin, + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for ProvingKey<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/struct.VerifyingKey.html b/jf_plonk/proof_system/structs/struct.VerifyingKey.html index d43e431ae..626c2eae2 100644 --- a/jf_plonk/proof_system/structs/struct.VerifyingKey.html +++ b/jf_plonk/proof_system/structs/struct.VerifyingKey.html @@ -1,106 +1,107 @@ -VerifyingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::VerifyingKey

source ·
pub struct VerifyingKey<E: Pairing> {
-    pub domain_size: usize,
-    pub num_inputs: usize,
-    pub sigma_comms: Vec<Commitment<E>>,
-    pub selector_comms: Vec<Commitment<E>>,
-    pub k: Vec<E::ScalarField>,
+VerifyingKey in jf_plonk::proof_system::structs - Rust

Struct jf_plonk::proof_system::structs::VerifyingKey

source ·
pub struct VerifyingKey<E: Pairing> {
+    pub domain_size: usize,
+    pub num_inputs: usize,
+    pub sigma_comms: Vec<Commitment<E>>,
+    pub selector_comms: Vec<Commitment<E>>,
+    pub k: Vec<E::ScalarField>,
     pub open_key: OpenKey<E>,
-    pub is_merged: bool,
-    pub plookup_vk: Option<PlookupVerifyingKey<E>>,
+    pub is_merged: bool,
+    pub plookup_vk: Option<PlookupVerifyingKey<E>>,
 }
Expand description

Preprocessed verifier parameters used to verify Plonk proofs for a certain circuit.

-

Fields§

§domain_size: usize

The size of the evaluation domain. Should be a power of two.

-
§num_inputs: usize

The number of public inputs.

-
§sigma_comms: Vec<Commitment<E>>

The permutation polynomial commitments. The commitments are not hiding.

-
§selector_comms: Vec<Commitment<E>>

The selector polynomial commitments. The commitments are not hiding.

-
§k: Vec<E::ScalarField>

The constants K0, …, K_num_wire_types that ensure wire subsets are +

Fields§

§domain_size: usize

The size of the evaluation domain. Should be a power of two.

+
§num_inputs: usize

The number of public inputs.

+
§sigma_comms: Vec<Commitment<E>>

The permutation polynomial commitments. The commitments are not hiding.

+
§selector_comms: Vec<Commitment<E>>

The selector polynomial commitments. The commitments are not hiding.

+
§k: Vec<E::ScalarField>

The constants K0, …, K_num_wire_types that ensure wire subsets are disjoint.

§open_key: OpenKey<E>

KZG PCS opening key.

-
§is_merged: bool

A flag indicating whether the key is a merged key.

-
§plookup_vk: Option<PlookupVerifyingKey<E>>

Plookup verifying key, None if not support lookup.

+
§is_merged: bool

A flag indicating whether the key is a merged key.

+
§plookup_vk: Option<PlookupVerifyingKey<E>>

Plookup verifying key, None if not support lookup.

Implementations§

source§

impl<E, F, P> VerifyingKey<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: SWToTEConParam, - P: SWCurveConfig<BaseField = F>,

source

pub fn convert_te_coordinates_to_scalars(&self) -> Vec<F>

Convert the group elements to a list of scalars that represent the + P: SWCurveConfig<BaseField = F>,

source

pub fn convert_te_coordinates_to_scalars(&self) -> Vec<F>

Convert the group elements to a list of scalars that represent the Twisted Edwards coordinates.

-
source§

impl<E: Pairing> VerifyingKey<E>

source

pub fn dummy(num_inputs: usize, domain_size: usize) -> Self

Create a dummy TurboPlonk verification key for a circuit with +

source§

impl<E: Pairing> VerifyingKey<E>

source

pub fn dummy(num_inputs: usize, domain_size: usize) -> Self

Create a dummy TurboPlonk verification key for a circuit with num_inputs public inputs and domain size domain_size.

-

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for VerifyingKey<E>

Trait Implementations§

source§

impl<E: Pairing> CanonicalDeserialize for VerifyingKey<E>

source§

fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

The general deserialize method that takes in customization flags.
§

fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where - R: Read,

§

fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
where + R: Read,

§

fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
where - R: Read,

source§

impl<E: Pairing> CanonicalSerialize for VerifyingKey<E>

source§

fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
where + R: Read,

source§

impl<E: Pairing> CanonicalSerialize for VerifyingKey<E>

source§

fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where - W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for VerifyingKey<E>
where - E::ScalarField: Clone,

source§

fn clone(&self) -> VerifyingKey<E>

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<E: Debug + Pairing> Debug for VerifyingKey<E>
where - E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
where +) -> Result<(), SerializationError>

The general serialize method that takes in customization flags.
source§

fn serialized_size(&self, compress: Compress) -> usize

§

fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn compressed_size(&self) -> usize

§

fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
where + W: Write,

§

fn uncompressed_size(&self) -> usize

source§

impl<E: Clone + Pairing> Clone for VerifyingKey<E>
where + E::ScalarField: Clone,

source§

fn clone(&self) -> VerifyingKey<E>

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<E: Debug + Pairing> Debug for VerifyingKey<E>
where + E::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
where E: Pairing<G1Affine = Affine<P1>, G2Affine = Affine<P2>, TargetField = Fp2<F>>, F: Fp2Config<Fp = E::BaseField>, P1: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>, - P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,

source§

fn from(vk: VerifyingKey<E>) -> Self

Converts to this type from the input type.
source§

impl<E: PartialEq + Pairing> PartialEq for VerifyingKey<E>
where - E::ScalarField: PartialEq,

source§

fn eq(&self, other: &VerifyingKey<E>) -> 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<E: Pairing> Valid for VerifyingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
where - Self: 'a,

source§

impl<E: Eq + Pairing> Eq for VerifyingKey<E>
where - E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for VerifyingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for VerifyingKey<E>
where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for VerifyingKey<E>
where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe, - <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for VerifyingKey<E>

§

impl<E> Sync for VerifyingKey<E>

§

impl<E> Unpin for VerifyingKey<E>
where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin, - <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for VerifyingKey<E>
where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe, - <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where - T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,

source§

fn from(vk: VerifyingKey<E>) -> Self

Converts to this type from the input type.
source§

impl<E: PartialEq + Pairing> PartialEq for VerifyingKey<E>
where + E::ScalarField: PartialEq,

source§

fn eq(&self, other: &VerifyingKey<E>) -> 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<E: Pairing> Valid for VerifyingKey<E>

source§

fn check(&self) -> Result<(), SerializationError>

source§

fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
where + Self: 'a,

source§

impl<E: Eq + Pairing> Eq for VerifyingKey<E>
where + E::ScalarField: Eq,

source§

impl<E: Pairing> StructuralPartialEq for VerifyingKey<E>

Auto Trait Implementations§

§

impl<E> Freeze for VerifyingKey<E>
where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze,

§

impl<E> RefUnwindSafe for VerifyingKey<E>
where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

§

impl<E> Send for VerifyingKey<E>

§

impl<E> Sync for VerifyingKey<E>

§

impl<E> Unpin for VerifyingKey<E>
where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin, + <E as Pairing>::ScalarField: Unpin,

§

impl<E> UnwindSafe for VerifyingKey<E>
where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CanonicalSerializeHashExt for T
where + T: CanonicalSerialize,

§

fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where H: Digest,

§

fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where - H: Digest,

§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
where + H: Digest,
source§

impl<T> CloneToUninit for T
where + T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for T
where - T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Clone,
source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where - T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where + T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/type.CommitKey.html b/jf_plonk/proof_system/structs/type.CommitKey.html index 32b318cae..f2f13adea 100644 --- a/jf_plonk/proof_system/structs/type.CommitKey.html +++ b/jf_plonk/proof_system/structs/type.CommitKey.html @@ -1,5 +1,5 @@ -CommitKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::CommitKey

source ·
pub type CommitKey<E> = UnivariateProverParam<E>;
Expand description

Commitment key

+CommitKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::CommitKey

source ·
pub type CommitKey<E> = UnivariateProverParam<E>;
Expand description

Commitment key

Aliased Type§

struct CommitKey<E> {
-    pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
-}

Fields§

§powers_of_g: Vec<<E as Pairing>::G1Affine>

Config

+ pub powers_of_g: Vec<<E as Pairing>::G1Affine>, +}

Fields§

§powers_of_g: Vec<<E as Pairing>::G1Affine>

Config

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/type.OpenKey.html b/jf_plonk/proof_system/structs/type.OpenKey.html index 6cd8f3024..2a3a1099f 100644 --- a/jf_plonk/proof_system/structs/type.OpenKey.html +++ b/jf_plonk/proof_system/structs/type.OpenKey.html @@ -1,16 +1,16 @@ -OpenKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::OpenKey

source ·
pub type OpenKey<E> = UnivariateVerifierParam<E>;
Expand description

Key for verifying PCS opening proof.

+OpenKey in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::OpenKey

source ·
pub type OpenKey<E> = UnivariateVerifierParam<E>;
Expand description

Key for verifying PCS opening proof.

Aliased Type§

struct OpenKey<E> {
     pub g: <E as Pairing>::G1Affine,
     pub h: <E as Pairing>::G2Affine,
     pub beta_h: <E as Pairing>::G2Affine,
-    pub powers_of_h: Vec<<E as Pairing>::G2Affine>,
-    pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
+    pub powers_of_h: Vec<<E as Pairing>::G2Affine>,
+    pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
 }

Fields§

§g: <E as Pairing>::G1Affine

TODO: remove g, h and beta_h The generator of G1.

§h: <E as Pairing>::G2Affine

The generator of G2.

§beta_h: <E as Pairing>::G2Affine

\beta times the above generator of G2.

-
§powers_of_h: Vec<<E as Pairing>::G2Affine>

powers of \beta time the generator h of G2: only used for multi-point +

§powers_of_h: Vec<<E as Pairing>::G2Affine>

powers of \beta time the generator h of G2: only used for multi-point openings

-
§powers_of_g: Vec<<E as Pairing>::G1Affine>

powers of \beta time the generator g of G1: only used for multi-point +

§powers_of_g: Vec<<E as Pairing>::G1Affine>

powers of \beta time the generator g of G1: only used for multi-point openings

\ No newline at end of file diff --git a/jf_plonk/proof_system/structs/type.UniversalSrs.html b/jf_plonk/proof_system/structs/type.UniversalSrs.html index b70bd5f21..7e0eb7cf8 100644 --- a/jf_plonk/proof_system/structs/type.UniversalSrs.html +++ b/jf_plonk/proof_system/structs/type.UniversalSrs.html @@ -1,13 +1,13 @@ -UniversalSrs in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::UniversalSrs

source ·
pub type UniversalSrs<E> = UnivariateUniversalParams<E>;
Expand description

Universal StructuredReferenceString

+UniversalSrs in jf_plonk::proof_system::structs - Rust

Type Alias jf_plonk::proof_system::structs::UniversalSrs

source ·
pub type UniversalSrs<E> = UnivariateUniversalParams<E>;
Expand description

Universal StructuredReferenceString

Aliased Type§

struct UniversalSrs<E> {
-    pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
+    pub powers_of_g: Vec<<E as Pairing>::G1Affine>,
     pub h: <E as Pairing>::G2Affine,
     pub beta_h: <E as Pairing>::G2Affine,
-    pub powers_of_h: Vec<<E as Pairing>::G2Affine>,
-}

Fields§

§powers_of_g: Vec<<E as Pairing>::G1Affine>

Group elements of the form { \beta^i G }, where i ranges from 0 to + pub powers_of_h: Vec<<E as Pairing>::G2Affine>, +}

Fields§

§powers_of_g: Vec<<E as Pairing>::G1Affine>

Group elements of the form { \beta^i G }, where i ranges from 0 to degree.

§h: <E as Pairing>::G2Affine

TODO: remove h and beta_h The generator of G2.

§beta_h: <E as Pairing>::G2Affine

\beta times the above generator of G2.

-
§powers_of_h: Vec<<E as Pairing>::G2Affine>

powers of \beta time the generator h of G2

+
§powers_of_h: Vec<<E as Pairing>::G2Affine>

powers of \beta time the generator h of G2

\ No newline at end of file diff --git a/jf_plonk/proof_system/trait.UniversalSNARK.html b/jf_plonk/proof_system/trait.UniversalSNARK.html index 571678ce1..32c030f1b 100644 --- a/jf_plonk/proof_system/trait.UniversalSNARK.html +++ b/jf_plonk/proof_system/trait.UniversalSNARK.html @@ -1,21 +1,21 @@ -UniversalSNARK in jf_plonk::proof_system - Rust

Trait jf_plonk::proof_system::UniversalSNARK

source ·
pub trait UniversalSNARK<E: Pairing> {
-    type Proof: Clone;
-    type ProvingKey: Clone;
-    type VerifyingKey: Clone;
-    type UniversalSRS: Clone + Debug;
-    type Error: 'static + Error;
+UniversalSNARK in jf_plonk::proof_system - Rust

Trait jf_plonk::proof_system::UniversalSNARK

source ·
pub trait UniversalSNARK<E: Pairing> {
+    type Proof: Clone;
+    type ProvingKey: Clone;
+    type VerifyingKey: Clone;
+    type UniversalSRS: Clone + Debug;
+    type Error: 'static + Error;
 
     // Required methods
     fn preprocess<C: Arithmetization<E::ScalarField>>(
         srs: &Self::UniversalSRS,
-        circuit: &C,
-    ) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>;
+        circuit: &C,
+    ) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>;
     fn prove<C, R, T>(
-        rng: &mut R,
-        circuit: &C,
+        rng: &mut R,
+        circuit: &C,
         prove_key: &Self::ProvingKey,
-        extra_transcript_init_msg: Option<Vec<u8>>,
-    ) -> Result<Self::Proof, Self::Error>
+        extra_transcript_init_msg: Option<Vec<u8>>,
+    ) -> Result<Self::Proof, Self::Error>
        where C: Arithmetization<E::ScalarField>,
              R: CryptoRng + RngCore,
              T: PlonkTranscript<E::BaseField>;
@@ -23,33 +23,33 @@
         verify_key: &Self::VerifyingKey,
         public_input: &[E::ScalarField],
         proof: &Self::Proof,
-        extra_transcript_init_msg: Option<Vec<u8>>,
-    ) -> Result<(), Self::Error>;
+        extra_transcript_init_msg: Option<Vec<u8>>,
+    ) -> Result<(), Self::Error>;
 
     // Provided method
     fn universal_setup<R: RngCore + CryptoRng>(
-        _max_degree: usize,
-        _rng: &mut R,
-    ) -> Result<Self::UniversalSRS, Self::Error> { ... }
+        _max_degree: usize,
+        _rng: &mut R,
+    ) -> Result<Self::UniversalSRS, Self::Error> { ... }
 }
Expand description

An interface for SNARKs with universal setup.

-

Required Associated Types§

source

type Proof: Clone

The SNARK proof computed by the prover.

-
source

type ProvingKey: Clone

The parameters required by the prover to compute a proof for a specific +

Required Associated Types§

source

type Proof: Clone

The SNARK proof computed by the prover.

+
source

type ProvingKey: Clone

The parameters required by the prover to compute a proof for a specific circuit.

-
source

type VerifyingKey: Clone

The parameters required by the verifier to validate a proof for a +

source

type VerifyingKey: Clone

The parameters required by the verifier to validate a proof for a specific circuit.

-
source

type UniversalSRS: Clone + Debug

Universal Structured Reference String from universal_setup, used for +

source

type UniversalSRS: Clone + Debug

Universal Structured Reference String from universal_setup, used for all subsequent circuit-specific preprocessing

-
source

type Error: 'static + Error

SNARK related error

+
source

type Error: 'static + Error

SNARK related error

Required Methods§

source

fn preprocess<C: Arithmetization<E::ScalarField>>( srs: &Self::UniversalSRS, - circuit: &C, -) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Circuit-specific preprocessing to compute the proving/verifying keys.

+ circuit: &C, +) -> Result<(Self::ProvingKey, Self::VerifyingKey), Self::Error>

Circuit-specific preprocessing to compute the proving/verifying keys.

source

fn prove<C, R, T>( - rng: &mut R, - circuit: &C, + rng: &mut R, + circuit: &C, prove_key: &Self::ProvingKey, - extra_transcript_init_msg: Option<Vec<u8>>, -) -> Result<Self::Proof, Self::Error>
where + extra_transcript_init_msg: Option<Vec<u8>>, +) -> Result<Self::Proof, Self::Error>
where C: Arithmetization<E::ScalarField>, R: CryptoRng + RngCore, T: PlonkTranscript<E::BaseField>,

Compute a SNARK proof of a circuit circuit, using the corresponding @@ -64,19 +64,19 @@ verify_key: &Self::VerifyingKey, public_input: &[E::ScalarField], proof: &Self::Proof, - extra_transcript_init_msg: Option<Vec<u8>>, -) -> Result<(), Self::Error>

Verify a SNARK proof proof of the circuit circuit, with respect to + extra_transcript_init_msg: Option<Vec<u8>>, +) -> Result<(), Self::Error>

Verify a SNARK proof proof of the circuit circuit, with respect to the public input pub_input.

extra_transcript_init_msg: refer to documentation of prove

Provided Methods§

source

fn universal_setup<R: RngCore + CryptoRng>( - _max_degree: usize, - _rng: &mut R, -) -> Result<Self::UniversalSRS, Self::Error>

Generate the universal SRS for the argument system. + _max_degree: usize, + _rng: &mut R, +) -> Result<Self::UniversalSRS, Self::Error>

Generate the universal SRS for the argument system. This setup is for trusted party to run, and mostly only used for testing purpose. In practice, a MPC flavor of the setup will be carried out to have higher assurance on the “toxic waste”/trapdoor being thrown away to ensure soundness of the argument system.

-

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, F, P> UniversalSNARK<E> for PlonkKzgSnark<E>
where +

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<E, F, P> UniversalSNARK<E> for PlonkKzgSnark<E>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, F: RescueParameter + SWToTEConParam, P: SWCurveConfig<BaseField = F>,

\ No newline at end of file diff --git a/jf_plonk/transcript/index.html b/jf_plonk/transcript/index.html index d5ccf22ec..67db3c752 100644 --- a/jf_plonk/transcript/index.html +++ b/jf_plonk/transcript/index.html @@ -1,3 +1,3 @@ -jf_plonk::transcript - Rust

Module jf_plonk::transcript

source ·
Expand description

This module implements three different types of transcripts that are +jf_plonk::transcript - Rust

Module jf_plonk::transcript

source ·
Expand description

This module implements three different types of transcripts that are supported.

Structs§

Traits§

\ No newline at end of file diff --git a/jf_plonk/transcript/struct.RescueTranscript.html b/jf_plonk/transcript/struct.RescueTranscript.html index 1721cf2b9..ff872ddef 100644 --- a/jf_plonk/transcript/struct.RescueTranscript.html +++ b/jf_plonk/transcript/struct.RescueTranscript.html @@ -1,4 +1,4 @@ -RescueTranscript in jf_plonk::transcript - Rust

Struct jf_plonk::transcript::RescueTranscript

source ·
pub struct RescueTranscript<F>
where +RescueTranscript in jf_plonk::transcript - Rust

Struct jf_plonk::transcript::RescueTranscript

source ·
pub struct RescueTranscript<F>
where F: RescueParameter,
{ /* private fields */ }
Expand description

Transcript with rescue hash function.

It is currently implemented simply as

    @@ -14,90 +14,90 @@
  • transcript = vec![]

Trait Implementations§

source§

impl<F> PlonkTranscript<F> for RescueTranscript<F>

source§

fn new(_label: &'static [u8]) -> Self

Create a new plonk transcript. _label is omitted for efficiency.

+ F: RescueParameter + SWToTEConParam,
source§

fn new(_label: &'static [u8]) -> Self

Create a new plonk transcript. _label is omitted for efficiency.

source§

fn append_message( &mut self, - _label: &'static [u8], - msg: &[u8], -) -> Result<(), PlonkError>

Append the message to the transcript. _label is omitted for + _label: &'static [u8], + msg: &[u8], +) -> Result<(), PlonkError>

Append the message to the transcript. _label is omitted for efficiency.

source§

fn append_commitment<E, P>( &mut self, - _label: &'static [u8], + _label: &'static [u8], comm: &Commitment<E>, -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a single commitment to the transcript. _label is omitted for efficiency.

source§

fn get_challenge<E>( &mut self, - _label: &'static [u8], -) -> Result<E::ScalarField, PlonkError>
where + _label: &'static [u8], +) -> Result<E::ScalarField, PlonkError>
where E: Pairing<BaseField = F>,

Generate the challenge for the current transcript, _label is omitted for efficiency.

source§

fn append_vk_and_pub_input<E, P>( &mut self, vk: &VerifyingKey<E>, pub_input: &[E::ScalarField], -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append the verification key and the public input to the transcript.
source§

fn append_field_elem<E>( &mut self, - _label: &'static [u8], + _label: &'static [u8], challenge: &E::ScalarField, -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where E: Pairing<BaseField = F>,

Append a field element to the transcript.
source§

fn append_proof_evaluations<E: Pairing>( &mut self, evals: &ProofEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

Append a proof evaluation to the transcript.
source§

fn append_plookup_evaluations<E: Pairing>( +) -> Result<(), PlonkError>

Append a proof evaluation to the transcript.
source§

fn append_plookup_evaluations<E: Pairing>( &mut self, evals: &PlookupEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

Append the plookup evaluation to the transcript.
source§

fn append_commitments<E, P>( +) -> Result<(), PlonkError>

Append the plookup evaluation to the transcript.
source§

fn append_commitments<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comms: &[Commitment<E>], -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

Append a slice of commitments to the transcript.
source§

fn append_field_elems<E>( &mut self, - label: &'static [u8], + label: &'static [u8], fields: &[E::ScalarField], -) -> Result<(), PlonkError>
where +) -> Result<(), PlonkError>
where E: Pairing<BaseField = F>,

Append a list of field elements to the transcript
source§

fn get_n_challenges<E>( &mut self, - labels: &[&'static [u8]], -) -> Result<Vec<E::ScalarField>, PlonkError>
where + labels: &[&'static [u8]], +) -> Result<Vec<E::ScalarField>, PlonkError>
where E: Pairing<BaseField = F>,

Generate multiple challenges for the current round Implementers should be careful about domain separation for each challenge The default implementation assume self.get_challenge() already implements proper domain separation for each challenge -generation, thus simply call it multiple times.

Auto Trait Implementations§

§

impl<F> Freeze for RescueTranscript<F>
where - F: Freeze,

§

impl<F> RefUnwindSafe for RescueTranscript<F>
where - F: RefUnwindSafe,

§

impl<F> Send for RescueTranscript<F>

§

impl<F> Sync for RescueTranscript<F>

§

impl<F> Unpin for RescueTranscript<F>
where - F: Unpin,

§

impl<F> UnwindSafe for RescueTranscript<F>
where - F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where - T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where - T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where - T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where - T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generation, thus simply call it multiple times.

Auto Trait Implementations§

§

impl<F> Freeze for RescueTranscript<F>
where + F: Freeze,

§

impl<F> RefUnwindSafe for RescueTranscript<F>
where + F: RefUnwindSafe,

§

impl<F> Send for RescueTranscript<F>

§

impl<F> Sync for RescueTranscript<F>

§

impl<F> Unpin for RescueTranscript<F>
where + F: Unpin,

§

impl<F> UnwindSafe for RescueTranscript<F>
where + F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where + T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where + T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where + T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where + T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where - T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

-
source§

impl<T, U> Into<U> for T
where - U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

+ T: Any + Send + Sync,
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

+
source§

impl<T, U> Into<U> for T
where + U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

+
source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where - F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where - U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where - U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where +otherwise. Read more

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where + U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where + U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

\ No newline at end of file diff --git a/jf_plonk/transcript/struct.SolidityTranscript.html b/jf_plonk/transcript/struct.SolidityTranscript.html index 98360f40a..3389fb8bc 100644 --- a/jf_plonk/transcript/struct.SolidityTranscript.html +++ b/jf_plonk/transcript/struct.SolidityTranscript.html @@ -1,4 +1,4 @@ -SolidityTranscript in jf_plonk::transcript - Rust

Struct jf_plonk::transcript::SolidityTranscript

source ·
pub struct SolidityTranscript { /* private fields */ }
Expand description

Transcript with keccak256 hash function.

+SolidityTranscript in jf_plonk::transcript - Rust

Struct jf_plonk::transcript::SolidityTranscript

source ·
pub struct SolidityTranscript { /* private fields */ }
Expand description

Transcript with keccak256 hash function.

We append new elements to the transcript vector, and when a challenge is generated, the state is updated and transcript is emptied.

@@ -7,84 +7,84 @@
  • transcript = Vec::new()
  • challenge = bytes_to_field(state)
  • -

    Trait Implementations§

    source§

    impl<F: PrimeField> PlonkTranscript<F> for SolidityTranscript

    source§

    fn new(_label: &'static [u8]) -> Self

    Create a new plonk transcript. label is omitted for efficiency.

    +

    Trait Implementations§

    source§

    impl<F: PrimeField> PlonkTranscript<F> for SolidityTranscript

    source§

    fn new(_label: &'static [u8]) -> Self

    Create a new plonk transcript. label is omitted for efficiency.

    source§

    fn append_message( &mut self, - _label: &'static [u8], - msg: &[u8], -) -> Result<(), PlonkError>

    Append the message to the transcript. _label is omitted for + _label: &'static [u8], + msg: &[u8], +) -> Result<(), PlonkError>

    Append the message to the transcript. _label is omitted for efficiency.

    source§

    fn append_commitment<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comm: &Commitment<E>, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWCurveConfig<BaseField = F>,

    Append a single commitment to the transcript.
    source§

    fn append_field_elem<E>( &mut self, - label: &'static [u8], + label: &'static [u8], challenge: &E::ScalarField, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a field element to the transcript.
    source§

    fn append_vk_and_pub_input<E, P>( &mut self, vk: &VerifyingKey<E>, pub_input: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, E::ScalarField: PrimeField, P: SWCurveConfig<BaseField = F>,

    Append the verification key and the public input to the transcript.
    source§

    fn get_challenge<E>( &mut self, - _label: &'static [u8], -) -> Result<E::ScalarField, PlonkError>
    where + _label: &'static [u8], +) -> Result<E::ScalarField, PlonkError>
    where E: Pairing<BaseField = F>, E::ScalarField: PrimeField,

    Generate a single challenge for the current round
    source§

    fn append_commitments<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comms: &[Commitment<E>], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append a slice of commitments to the transcript.
    source§

    fn append_field_elems<E>( &mut self, - label: &'static [u8], + label: &'static [u8], fields: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a list of field elements to the transcript
    source§

    fn append_proof_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &ProofEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.
    source§

    fn append_plookup_evaluations<E: Pairing<BaseField = F>>( +) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.
    source§

    fn append_plookup_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &PlookupEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.
    source§

    fn get_n_challenges<E>( +) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.
    source§

    fn get_n_challenges<E>( &mut self, - labels: &[&'static [u8]], -) -> Result<Vec<E::ScalarField>, PlonkError>
    where + labels: &[&'static [u8]], +) -> Result<Vec<E::ScalarField>, PlonkError>
    where E: Pairing<BaseField = F>,

    Generate multiple challenges for the current round Implementers should be careful about domain separation for each challenge The default implementation assume self.get_challenge() already implements proper domain separation for each challenge -generation, thus simply call it multiple times.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generation, thus simply call it multiple times.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_plonk/transcript/struct.StandardTranscript.html b/jf_plonk/transcript/struct.StandardTranscript.html index c7f63a395..517b58b61 100644 --- a/jf_plonk/transcript/struct.StandardTranscript.html +++ b/jf_plonk/transcript/struct.StandardTranscript.html @@ -1,78 +1,78 @@ -StandardTranscript in jf_plonk::transcript - Rust

    Struct jf_plonk::transcript::StandardTranscript

    source ·
    pub struct StandardTranscript(/* private fields */);
    Expand description

    A wrapper of merlin::Transcript.

    -

    Trait Implementations§

    source§

    impl<F> PlonkTranscript<F> for StandardTranscript

    source§

    fn new(label: &'static [u8]) -> Self

    create a new plonk transcript

    +StandardTranscript in jf_plonk::transcript - Rust

    Struct jf_plonk::transcript::StandardTranscript

    source ·
    pub struct StandardTranscript(/* private fields */);
    Expand description

    A wrapper of merlin::Transcript.

    +

    Trait Implementations§

    source§

    impl<F> PlonkTranscript<F> for StandardTranscript

    source§

    fn new(label: &'static [u8]) -> Self

    create a new plonk transcript

    source§

    fn append_message( &mut self, - label: &'static [u8], - msg: &[u8], -) -> Result<(), PlonkError>

    Append the message to the transcript.
    source§

    fn get_challenge<E>( + label: &'static [u8], + msg: &[u8], +) -> Result<(), PlonkError>

    Append the message to the transcript.
    source§

    fn get_challenge<E>( &mut self, - label: &'static [u8], -) -> Result<E::ScalarField, PlonkError>
    where + label: &'static [u8], +) -> Result<E::ScalarField, PlonkError>
    where E: Pairing,

    Generate a single challenge for the current round
    source§

    fn append_vk_and_pub_input<E, P>( &mut self, vk: &VerifyingKey<E>, pub_input: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append the verification key and the public input to the transcript.
    source§

    fn append_commitments<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comms: &[Commitment<E>], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append a slice of commitments to the transcript.
    source§

    fn append_commitment<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comm: &Commitment<E>, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append a single commitment to the transcript.
    source§

    fn append_field_elem<E>( &mut self, - label: &'static [u8], + label: &'static [u8], field: &E::ScalarField, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a field element to the transcript.
    source§

    fn append_field_elems<E>( &mut self, - label: &'static [u8], + label: &'static [u8], fields: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a list of field elements to the transcript
    source§

    fn append_proof_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &ProofEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.
    source§

    fn append_plookup_evaluations<E: Pairing<BaseField = F>>( +) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.
    source§

    fn append_plookup_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &PlookupEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.
    source§

    fn get_n_challenges<E>( +) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.
    source§

    fn get_n_challenges<E>( &mut self, - labels: &[&'static [u8]], -) -> Result<Vec<E::ScalarField>, PlonkError>
    where + labels: &[&'static [u8]], +) -> Result<Vec<E::ScalarField>, PlonkError>
    where E: Pairing<BaseField = F>,

    Generate multiple challenges for the current round Implementers should be careful about domain separation for each challenge The default implementation assume self.get_challenge() already implements proper domain separation for each challenge -generation, thus simply call it multiple times.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generation, thus simply call it multiple times.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_plonk/transcript/trait.PlonkTranscript.html b/jf_plonk/transcript/trait.PlonkTranscript.html index 4d7175dfd..e86816ceb 100644 --- a/jf_plonk/transcript/trait.PlonkTranscript.html +++ b/jf_plonk/transcript/trait.PlonkTranscript.html @@ -1,15 +1,15 @@ -PlonkTranscript in jf_plonk::transcript - Rust

    Trait jf_plonk::transcript::PlonkTranscript

    source ·
    pub trait PlonkTranscript<F> {
    +PlonkTranscript in jf_plonk::transcript - Rust

    Trait jf_plonk::transcript::PlonkTranscript

    source ·
    pub trait PlonkTranscript<F> {
         // Required methods
    -    fn new(label: &'static [u8]) -> Self;
    +    fn new(label: &'static [u8]) -> Self;
         fn append_message(
             &mut self,
    -        label: &'static [u8],
    -        msg: &[u8],
    -    ) -> Result<(), PlonkError>;
    +        label: &'static [u8],
    +        msg: &[u8],
    +    ) -> Result<(), PlonkError>;
         fn get_challenge<E>(
             &mut self,
    -        label: &'static [u8],
    -    ) -> Result<E::ScalarField, PlonkError>
    +        label: &'static [u8],
    +    ) -> Result<E::ScalarField, PlonkError>
            where E: Pairing<BaseField = F>;
     
         // Provided methods
    @@ -17,47 +17,47 @@
             &mut self,
             vk: &VerifyingKey<E>,
             pub_input: &[E::ScalarField],
    -    ) -> Result<(), PlonkError>
    +    ) -> Result<(), PlonkError>
            where E: Pairing<BaseField = F, G1Affine = Affine<P>>,
                  P: SWParam<BaseField = F> { ... }
         fn append_commitments<E, P>(
             &mut self,
    -        label: &'static [u8],
    +        label: &'static [u8],
             comms: &[Commitment<E>],
    -    ) -> Result<(), PlonkError>
    +    ) -> Result<(), PlonkError>
            where E: Pairing<BaseField = F, G1Affine = Affine<P>>,
                  P: SWParam<BaseField = F> { ... }
         fn append_commitment<E, P>(
             &mut self,
    -        label: &'static [u8],
    +        label: &'static [u8],
             comm: &Commitment<E>,
    -    ) -> Result<(), PlonkError>
    +    ) -> Result<(), PlonkError>
            where E: Pairing<BaseField = F, G1Affine = Affine<P>>,
                  P: SWParam<BaseField = F> { ... }
         fn append_field_elem<E>(
             &mut self,
    -        label: &'static [u8],
    +        label: &'static [u8],
             field: &E::ScalarField,
    -    ) -> Result<(), PlonkError>
    +    ) -> Result<(), PlonkError>
            where E: Pairing<BaseField = F> { ... }
         fn append_field_elems<E>(
             &mut self,
    -        label: &'static [u8],
    +        label: &'static [u8],
             fields: &[E::ScalarField],
    -    ) -> Result<(), PlonkError>
    +    ) -> Result<(), PlonkError>
            where E: Pairing<BaseField = F> { ... }
         fn append_proof_evaluations<E: Pairing<BaseField = F>>(
             &mut self,
             evals: &ProofEvaluations<E::ScalarField>,
    -    ) -> Result<(), PlonkError> { ... }
    +    ) -> Result<(), PlonkError> { ... }
         fn append_plookup_evaluations<E: Pairing<BaseField = F>>(
             &mut self,
             evals: &PlookupEvaluations<E::ScalarField>,
    -    ) -> Result<(), PlonkError> { ... }
    +    ) -> Result<(), PlonkError> { ... }
         fn get_n_challenges<E>(
             &mut self,
    -        labels: &[&'static [u8]],
    -    ) -> Result<Vec<E::ScalarField>, PlonkError>
    +        labels: &[&'static [u8]],
    +    ) -> Result<Vec<E::ScalarField>, PlonkError>
            where E: Pairing<BaseField = F> { ... }
     }
    Expand description

    Defines transcript APIs.

    It has an associated type F which defines the native @@ -67,66 +67,66 @@ (instantiated with Rescue hash), or a Solidity-friendly transcript (instantiated with Keccak256 hash). The second is only used for recursive snarks.

    -

    Required Methods§

    source

    fn new(label: &'static [u8]) -> Self

    Create a new plonk transcript.

    +

    Required Methods§

    source

    fn new(label: &'static [u8]) -> Self

    Create a new plonk transcript.

    source

    fn append_message( &mut self, - label: &'static [u8], - msg: &[u8], -) -> Result<(), PlonkError>

    Append the message to the transcript.

    + label: &'static [u8], + msg: &[u8], +) -> Result<(), PlonkError>

    Append the message to the transcript.

    source

    fn get_challenge<E>( &mut self, - label: &'static [u8], -) -> Result<E::ScalarField, PlonkError>
    where + label: &'static [u8], +) -> Result<E::ScalarField, PlonkError>
    where E: Pairing<BaseField = F>,

    Generate a single challenge for the current round

    Provided Methods§

    source

    fn append_vk_and_pub_input<E, P>( &mut self, vk: &VerifyingKey<E>, pub_input: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append the verification key and the public input to the transcript.

    source

    fn append_commitments<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comms: &[Commitment<E>], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append a slice of commitments to the transcript.

    source

    fn append_commitment<E, P>( &mut self, - label: &'static [u8], + label: &'static [u8], comm: &Commitment<E>, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F, G1Affine = Affine<P>>, P: SWParam<BaseField = F>,

    Append a single commitment to the transcript.

    source

    fn append_field_elem<E>( &mut self, - label: &'static [u8], + label: &'static [u8], field: &E::ScalarField, -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a field element to the transcript.

    source

    fn append_field_elems<E>( &mut self, - label: &'static [u8], + label: &'static [u8], fields: &[E::ScalarField], -) -> Result<(), PlonkError>
    where +) -> Result<(), PlonkError>
    where E: Pairing<BaseField = F>,

    Append a list of field elements to the transcript

    source

    fn append_proof_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &ProofEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.

    +) -> Result<(), PlonkError>

    Append a proof evaluation to the transcript.

    source

    fn append_plookup_evaluations<E: Pairing<BaseField = F>>( &mut self, evals: &PlookupEvaluations<E::ScalarField>, -) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.

    +) -> Result<(), PlonkError>

    Append the plookup evaluation to the transcript.

    source

    fn get_n_challenges<E>( &mut self, - labels: &[&'static [u8]], -) -> Result<Vec<E::ScalarField>, PlonkError>
    where + labels: &[&'static [u8]], +) -> Result<Vec<E::ScalarField>, PlonkError>
    where E: Pairing<BaseField = F>,

    Generate multiple challenges for the current round Implementers should be careful about domain separation for each challenge The default implementation assume self.get_challenge() already implements proper domain separation for each challenge generation, thus simply call it multiple times.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<F> PlonkTranscript<F> for RescueTranscript<F>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/jf_prf/all.html b/jf_prf/all.html index 848e72281..1a9c2b72e 100644 --- a/jf_prf/all.html +++ b/jf_prf/all.html @@ -1 +1 @@ -List of all items in this crate

    List of all items

    Traits

    \ No newline at end of file +List of all items in this crate

    List of all items

    Traits

    \ No newline at end of file diff --git a/jf_prf/index.html b/jf_prf/index.html index b634100c8..817a7515f 100644 --- a/jf_prf/index.html +++ b/jf_prf/index.html @@ -1,2 +1,2 @@ -jf_prf - Rust

    Crate jf_prf

    source ·
    Expand description

    Trait definition for Pseudorandom function (PRF).

    +jf_prf - Rust

    Crate jf_prf

    source ·
    Expand description

    Trait definition for Pseudorandom function (PRF).

    Traits§

    • Trait for Pseudo-random Functions
    \ No newline at end of file diff --git a/jf_prf/trait.PRF.html b/jf_prf/trait.PRF.html index 60b671452..94cfcc207 100644 --- a/jf_prf/trait.PRF.html +++ b/jf_prf/trait.PRF.html @@ -1,33 +1,33 @@ -PRF in jf_prf - Rust

    Trait jf_prf::PRF

    source ·
    pub trait PRF {
    -    type Input: Clone + CanonicalDeserialize;
    -    type Output: Clone + Debug + PartialEq + Eq + CanonicalSerialize;
    -    type Seed: Clone + Debug + Default + UniformRand + CanonicalSerialize + CanonicalDeserialize;
    -    type Error: Error;
    +PRF in jf_prf - Rust

    Trait jf_prf::PRF

    source ·
    pub trait PRF {
    +    type Input: Clone + CanonicalDeserialize;
    +    type Output: Clone + Debug + PartialEq + Eq + CanonicalSerialize;
    +    type Seed: Clone + Debug + Default + UniformRand + CanonicalSerialize + CanonicalDeserialize;
    +    type Error: Error;
     
         // Required method
    -    fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>(
    +    fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>(
             seed: S,
             input: I,
    -    ) -> Result<Self::Output, Self::Error>;
    +    ) -> Result<Self::Output, Self::Error>;
     
         // Provided method
    -    fn evaluate_with_rand_seed<R: RngCore + CryptoRng, T: Borrow<Self::Input>>(
    -        rng: &mut R,
    +    fn evaluate_with_rand_seed<R: RngCore + CryptoRng, T: Borrow<Self::Input>>(
    +        rng: &mut R,
             input: T,
    -    ) -> Result<(Self::Seed, Self::Output), Self::Error> { ... }
    +    ) -> Result<(Self::Seed, Self::Output), Self::Error> { ... }
     }
    Expand description

    Trait for Pseudo-random Functions

    -

    Required Associated Types§

    source

    type Input: Clone + CanonicalDeserialize

    Input to the PRF

    -
    source

    type Output: Clone + Debug + PartialEq + Eq + CanonicalSerialize

    Output of the PRF

    -
    source

    type Seed: Clone + Debug + Default + UniformRand + CanonicalSerialize + CanonicalDeserialize

    The random seed/key that index a specific function from the PRF +

    Required Associated Types§

    source

    type Input: Clone + CanonicalDeserialize

    Input to the PRF

    +
    source

    type Output: Clone + Debug + PartialEq + Eq + CanonicalSerialize

    Output of the PRF

    +
    source

    type Seed: Clone + Debug + Default + UniformRand + CanonicalSerialize + CanonicalDeserialize

    The random seed/key that index a specific function from the PRF ensembles

    -
    source

    type Error: Error

    Error type

    -

    Required Methods§

    source

    fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>( +

    source

    type Error: Error

    Error type

    +

    Required Methods§

    source

    fn evaluate<S: Borrow<Self::Seed>, I: Borrow<Self::Input>>( seed: S, input: I, -) -> Result<Self::Output, Self::Error>

    Compute PRF output with a user-provided randomly generated seed

    -

    Provided Methods§

    source

    fn evaluate_with_rand_seed<R: RngCore + CryptoRng, T: Borrow<Self::Input>>( - rng: &mut R, +) -> Result<Self::Output, Self::Error>

    Compute PRF output with a user-provided randomly generated seed

    +

    Provided Methods§

    source

    fn evaluate_with_rand_seed<R: RngCore + CryptoRng, T: Borrow<Self::Input>>( + rng: &mut R, input: T, -) -> Result<(Self::Seed, Self::Output), Self::Error>

    same as Self::evaluate except that we generate a fresh random seed +) -> Result<(Self::Seed, Self::Output), Self::Error>

    same as Self::evaluate except that we generate a fresh random seed for the evaluation

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file +

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/jf_relation/all.html b/jf_relation/all.html index dbf78befa..71f13374b 100644 --- a/jf_relation/all.html +++ b/jf_relation/all.html @@ -1 +1 @@ -List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Functions

    Type Aliases

    Constants

    \ No newline at end of file +List of all items in this crate

    List of all items

    Structs

    Enums

    Traits

    Functions

    Type Aliases

    Constants

    \ No newline at end of file diff --git a/jf_relation/constants/constant.GATE_WIDTH.html b/jf_relation/constants/constant.GATE_WIDTH.html index 0058b9774..7fd83a354 100644 --- a/jf_relation/constants/constant.GATE_WIDTH.html +++ b/jf_relation/constants/constant.GATE_WIDTH.html @@ -1,2 +1,2 @@ -GATE_WIDTH in jf_relation::constants - Rust

    Constant jf_relation::constants::GATE_WIDTH

    source ·
    pub const GATE_WIDTH: usize = 4;
    Expand description

    The number of input wires.

    +GATE_WIDTH in jf_relation::constants - Rust

    Constant jf_relation::constants::GATE_WIDTH

    source ·
    pub const GATE_WIDTH: usize = 4;
    Expand description

    The number of input wires.

    \ No newline at end of file diff --git a/jf_relation/constants/constant.N_MUL_SELECTORS.html b/jf_relation/constants/constant.N_MUL_SELECTORS.html index 4ae1a70ff..73c222f5d 100644 --- a/jf_relation/constants/constant.N_MUL_SELECTORS.html +++ b/jf_relation/constants/constant.N_MUL_SELECTORS.html @@ -1,2 +1,2 @@ -N_MUL_SELECTORS in jf_relation::constants - Rust

    Constant jf_relation::constants::N_MUL_SELECTORS

    source ·
    pub const N_MUL_SELECTORS: usize = 2;
    Expand description

    The number of multiplication selectors.

    +N_MUL_SELECTORS in jf_relation::constants - Rust

    Constant jf_relation::constants::N_MUL_SELECTORS

    source ·
    pub const N_MUL_SELECTORS: usize = 2;
    Expand description

    The number of multiplication selectors.

    \ No newline at end of file diff --git a/jf_relation/constants/constant.N_TURBO_PLONK_SELECTORS.html b/jf_relation/constants/constant.N_TURBO_PLONK_SELECTORS.html index ab2f0d476..08f40b4e8 100644 --- a/jf_relation/constants/constant.N_TURBO_PLONK_SELECTORS.html +++ b/jf_relation/constants/constant.N_TURBO_PLONK_SELECTORS.html @@ -1,2 +1,2 @@ -N_TURBO_PLONK_SELECTORS in jf_relation::constants - Rust

    Constant jf_relation::constants::N_TURBO_PLONK_SELECTORS

    source ·
    pub const N_TURBO_PLONK_SELECTORS: usize = 13;
    Expand description

    The number of TurboPlonk selectors.

    +N_TURBO_PLONK_SELECTORS in jf_relation::constants - Rust

    Constant jf_relation::constants::N_TURBO_PLONK_SELECTORS

    source ·
    pub const N_TURBO_PLONK_SELECTORS: usize = 13;
    Expand description

    The number of TurboPlonk selectors.

    \ No newline at end of file diff --git a/jf_relation/constants/fn.compute_coset_representatives.html b/jf_relation/constants/fn.compute_coset_representatives.html index 953575d2b..c225ee14d 100644 --- a/jf_relation/constants/fn.compute_coset_representatives.html +++ b/jf_relation/constants/fn.compute_coset_representatives.html @@ -1,7 +1,7 @@ -compute_coset_representatives in jf_relation::constants - Rust
    pub fn compute_coset_representatives<F: PrimeField>(
    -    num_wire_types: usize,
    -    coset_size: Option<usize>,
    -) -> Vec<F>
    Expand description

    Compute constants K0, K1, …, K_{num_wire_types-1} so that cosets {Ki * +compute_coset_representatives in jf_relation::constants - Rust

    pub fn compute_coset_representatives<F: PrimeField>(
    +    num_wire_types: usize,
    +    coset_size: Option<usize>,
    +) -> Vec<F>
    Expand description

    Compute constants K0, K1, …, K_{num_wire_types-1} so that cosets {Ki * H} are disjoint, each coset |Ki * H| = coset_size. coset_size is optional, when provided, will accelerate constants searching.

    diff --git a/jf_relation/constants/index.html b/jf_relation/constants/index.html index 5f12c7a0a..eaec7bc68 100644 --- a/jf_relation/constants/index.html +++ b/jf_relation/constants/index.html @@ -1,4 +1,4 @@ -jf_relation::constants - Rust

    Module jf_relation::constants

    source ·
    Expand description

    Crate wide constants.

    +jf_relation::constants - Rust

    Module jf_relation::constants

    source ·
    Expand description

    Crate wide constants.

    Constants§

    Functions§

    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/constraint_system/enum.PlonkType.html b/jf_relation/constraint_system/enum.PlonkType.html index 4148b3ee8..e5a3c5444 100644 --- a/jf_relation/constraint_system/enum.PlonkType.html +++ b/jf_relation/constraint_system/enum.PlonkType.html @@ -1,42 +1,44 @@ -PlonkType in jf_relation::constraint_system - Rust

    Enum jf_relation::constraint_system::PlonkType

    source ·
    pub enum PlonkType {
    +PlonkType in jf_relation::constraint_system - Rust

    Enum jf_relation::constraint_system::PlonkType

    source ·
    pub enum PlonkType {
         TurboPlonk,
         UltraPlonk,
     }
    Expand description

    Enum for each type of Plonk scheme.

    Variants§

    §

    TurboPlonk

    TurboPlonk

    §

    UltraPlonk

    TurboPlonk that supports Plookup

    -

    Trait Implementations§

    source§

    impl Clone for PlonkType

    source§

    fn clone(&self) -> PlonkType

    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 PlonkType

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Hash for PlonkType

    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 PlonkType

    source§

    fn eq(&self, other: &PlonkType) -> 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 PlonkType

    source§

    impl Eq for PlonkType

    source§

    impl StructuralPartialEq for PlonkType

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl Clone for PlonkType

    source§

    fn clone(&self) -> PlonkType

    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 PlonkType

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Hash for PlonkType

    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 PlonkType

    source§

    fn eq(&self, other: &PlonkType) -> 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 PlonkType

    source§

    impl Eq for PlonkType

    source§

    impl StructuralPartialEq for PlonkType

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/constraint_system/index.html b/jf_relation/constraint_system/index.html index 2b56b7ce3..5bfa0e80a 100644 --- a/jf_relation/constraint_system/index.html +++ b/jf_relation/constraint_system/index.html @@ -1,4 +1,4 @@ -jf_relation::constraint_system - Rust

    Module jf_relation::constraint_system

    source ·
    Expand description

    Definitions and constructions of plonk constraint system

    +jf_relation::constraint_system - Rust

    Module jf_relation::constraint_system

    source ·
    Expand description

    Definitions and constructions of plonk constraint system

    Structs§

    • An index to a witness value of boolean type.
    • A specific Plonk circuit instantiation.

    Enums§

    • Enum for each type of mergeable circuit. We can only merge circuits from different types.
    • Enum for each type of Plonk scheme.

    Traits§

    • An interface that transforms Plonk circuits to polynomial used by Plonk-based SNARKs.
    • An interface for Plonk constraint systems.

    Type Aliases§

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/constraint_system/struct.PlonkCircuit.html b/jf_relation/constraint_system/struct.PlonkCircuit.html index 923703561..8255b99fe 100644 --- a/jf_relation/constraint_system/struct.PlonkCircuit.html +++ b/jf_relation/constraint_system/struct.PlonkCircuit.html @@ -1,27 +1,27 @@ -PlonkCircuit in jf_relation::constraint_system - Rust

    Struct jf_relation::constraint_system::PlonkCircuit

    source ·
    pub struct PlonkCircuit<F>
    where +PlonkCircuit in jf_relation::constraint_system - Rust

    Struct jf_relation::constraint_system::PlonkCircuit

    source ·
    pub struct PlonkCircuit<F>
    where F: FftField,
    { /* private fields */ }
    Expand description

    A specific Plonk circuit instantiation.

    Implementations§

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn emulated_sw_point_witness<E: EmulationConfig<F>>( &self, point_var: &EmulatedSWPointVariable<E>, -) -> Result<SWPoint<E>, CircuitError>

    Return the witness point

    +) -> Result<SWPoint<E>, CircuitError>

    Return the witness point

    source

    pub fn create_emulated_sw_point_variable<E: EmulationConfig<F>>( &mut self, point: SWPoint<E>, -) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new emulated EC point (as witness)

    +) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new emulated EC point (as witness)

    source

    pub fn create_constant_emulated_sw_point_variable<E: EmulationConfig<F>>( &mut self, point: SWPoint<E>, -) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new constant emulated EC point

    +) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new constant emulated EC point

    source

    pub fn create_public_emulated_sw_point_variable<E: EmulationConfig<F>>( &mut self, point: SWPoint<E>, -) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new public emulated EC point

    +) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Add a new public emulated EC point

    source

    pub fn binary_emulated_sw_point_vars_select<E: EmulationConfig<F>>( &mut self, b: BoolVar, p0: &EmulatedSWPointVariable<E>, p1: &EmulatedSWPointVariable<E>, -) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Obtain an emulated point variable of the conditional selection from 2 +) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Obtain an emulated point variable of the conditional selection from 2 emulated point variables. b is a boolean variable that indicates selection of P_b from (P0, P1). Return error if invalid input parameters are provided.

    @@ -29,13 +29,13 @@ &mut self, p0: &EmulatedSWPointVariable<E>, p1: &EmulatedSWPointVariable<E>, -) -> Result<(), CircuitError>

    Constrain two emulated point variables to be the same. +) -> Result<(), CircuitError>

    Constrain two emulated point variables to be the same. Return error if the input point variables are invalid.

    source

    pub fn is_emulated_sw_point_equal<E: EmulationConfig<F>>( &mut self, p0: &EmulatedSWPointVariable<E>, p1: &EmulatedSWPointVariable<E>, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated point +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated point variables are equal. Return error if variables are invalid.

    source

    pub fn emulated_sw_ecc_add_gate<E: EmulationConfig<F>>( &mut self, @@ -43,7 +43,7 @@ p1: &EmulatedSWPointVariable<E>, p2: &EmulatedSWPointVariable<E>, a: E, -) -> Result<(), CircuitError>

    Constrain variable p2 to be the point addition of p0 and +) -> Result<(), CircuitError>

    Constrain variable p2 to be the point addition of p0 and p1 over an elliptic curve. Let p0 = (x0, y0, inf0), p1 = (x1, y1, inf1), p2 = (x2, y2, inf2) The addition formula for affine points of sw curve is as follows:

    @@ -97,29 +97,29 @@ p0: &EmulatedSWPointVariable<E>, p1: &EmulatedSWPointVariable<E>, a: E, -) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Obtain a variable to the point addition result of p0 + p1

    +) -> Result<EmulatedSWPointVariable<E>, CircuitError>

    Obtain a variable to the point addition result of p0 + p1

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn emulated_te_point_witness<E: EmulationConfig<F>>( &self, point_var: &EmulatedTEPointVariable<E>, -) -> Result<TEPoint<E>, CircuitError>

    Return the witness point

    +) -> Result<TEPoint<E>, CircuitError>

    Return the witness point

    source

    pub fn create_emulated_te_point_variable<E: EmulationConfig<F>>( &mut self, p: TEPoint<E>, -) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new emulated EC point (as witness)

    +) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new emulated EC point (as witness)

    source

    pub fn create_constant_emulated_te_point_variable<E: EmulationConfig<F>>( &mut self, p: TEPoint<E>, -) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new constant emulated EC point

    +) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new constant emulated EC point

    source

    pub fn create_public_emulated_te_point_variable<E: EmulationConfig<F>>( &mut self, p: TEPoint<E>, -) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new public emulated EC point

    +) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Add a new public emulated EC point

    source

    pub fn binary_emulated_te_point_vars_select<E: EmulationConfig<F>>( &mut self, b: BoolVar, p0: &EmulatedTEPointVariable<E>, p1: &EmulatedTEPointVariable<E>, -) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Obtain an emulated point variable of the conditional selection from 2 +) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Obtain an emulated point variable of the conditional selection from 2 emulated point variables. b is a boolean variable that indicates selection of P_b from (P0, P1). Return error if invalid input parameters are provided.

    @@ -127,13 +127,13 @@ &mut self, p0: &EmulatedTEPointVariable<E>, p1: &EmulatedTEPointVariable<E>, -) -> Result<(), CircuitError>

    Constrain two emulated point variables to be the same. +) -> Result<(), CircuitError>

    Constrain two emulated point variables to be the same. Return error if the input point variables are invalid.

    source

    pub fn is_emulated_te_point_equal<E: EmulationConfig<F>>( &mut self, p0: &EmulatedTEPointVariable<E>, p1: &EmulatedTEPointVariable<E>, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated point +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated point variables are equal. Return error if variables are invalid.

    source

    pub fn emulated_te_ecc_add_gate<E: EmulationConfig<F>>( &mut self, @@ -141,43 +141,43 @@ p1: &EmulatedTEPointVariable<E>, p2: &EmulatedTEPointVariable<E>, d: E, -) -> Result<(), CircuitError>

    Constrain variable p2 to be the point addition of p0 and +) -> Result<(), CircuitError>

    Constrain variable p2 to be the point addition of p0 and p1 over an elliptic curve.

    source

    pub fn emulated_te_ecc_add<E: EmulationConfig<F>>( &mut self, p0: &EmulatedTEPointVariable<E>, p1: &EmulatedTEPointVariable<E>, d: E, -) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Obtain a variable to the point addition result of a + b

    +) -> Result<EmulatedTEPointVariable<E>, CircuitError>

    Obtain a variable to the point addition result of a + b

    source§

    impl<F> PlonkCircuit<F>
    where F: PrimeField,

    source

    pub fn glv_mul<P: TECurveConfig<BaseField = F>>( &mut self, scalar: Variable, base: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Perform GLV multiplication in circuit (which costs a few less +) -> Result<PointVariable, CircuitError>

    Perform GLV multiplication in circuit (which costs a few less constraints).

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn point_witness( &self, point_var: &PointVariable, -) -> Result<TEPoint<F>, CircuitError>

    Return the witness point for the circuit

    +) -> Result<TEPoint<F>, CircuitError>

    Return the witness point for the circuit

    source

    pub fn create_point_variable( &mut self, point: TEPoint<F>, -) -> Result<PointVariable, CircuitError>

    Add a new EC point (as witness) to the circuit

    +) -> Result<PointVariable, CircuitError>

    Add a new EC point (as witness) to the circuit

    source

    pub fn create_constant_point_variable( &mut self, point: TEPoint<F>, -) -> Result<PointVariable, CircuitError>

    Add a new EC point (as a constant) to the circuit

    +) -> Result<PointVariable, CircuitError>

    Add a new EC point (as a constant) to the circuit

    source

    pub fn create_public_point_variable( &mut self, point: TEPoint<F>, -) -> Result<PointVariable, CircuitError>

    Add a new EC point (as public input) to the circuit

    +) -> Result<PointVariable, CircuitError>

    Add a new EC point (as public input) to the circuit

    source

    pub fn binary_point_vars_select( &mut self, b: BoolVar, point0: &PointVariable, point1: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Obtain a point variable of the conditional selection from 2 point +) -> Result<PointVariable, CircuitError>

    Obtain a point variable of the conditional selection from 2 point variables. b is a boolean variable that indicates selection of P_b from (P0, P1). Return error if invalid input parameters are provided.

    @@ -185,31 +185,31 @@ &mut self, point0: &PointVariable, point1: &PointVariable, -) -> Result<(), CircuitError>

    Constrain two point variables to be the same. +) -> Result<(), CircuitError>

    Constrain two point variables to be the same. Return error if the input point variables are invalid.

    source

    pub fn is_point_equal( &mut self, point0: &PointVariable, point1: &PointVariable, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two point variables are +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two point variables are equal. Return error if point variables are invalid.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn inverse_point( &mut self, point_var: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Inverse a point variable

    +) -> Result<PointVariable, CircuitError>

    Inverse a point variable

    source

    pub fn neutral_point_variable(&self) -> PointVariable

    Return the point variable for the infinity point in the TE form: (0, 1)

    source

    pub fn is_neutral_point<P>( &mut self, point_var: &PointVariable, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where P: Config<BaseField = F>,

    Obtain a boolean variable indicating whether a point is the neutral point (0, 1) Return variable with value 1 if it is, or 0 otherwise Return error if input variables are invalid

    source

    pub fn enforce_on_curve<P: Config<BaseField = F>>( &mut self, point_var: &PointVariable, -) -> Result<(), CircuitError>

    Constrain a point to be on certain curve, namely its coordinates satisfy +) -> Result<(), CircuitError>

    Constrain a point to be on certain curve, namely its coordinates satisfy the curve equation, which is curve-dependent. Currently we only support checks of a Affine::<P> over a base field which is the bls12-381 scalar field

    @@ -218,7 +218,7 @@ &mut self, point_a: &PointVariable, point_b: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Obtain a variable to the point addition result of point_a + point_b +) -> Result<PointVariable, CircuitError>

    Obtain a variable to the point addition result of point_a + point_b where “+” is the group operation over an elliptic curve. Currently only supports Affine::<P> addition.

    Returns error if inputs are invalid

    @@ -226,13 +226,13 @@ &mut self, scalar: Variable, base: &Affine<P>, -) -> Result<PointVariable, CircuitError>

    Obtain the fixed-based scalar multiplication result of scalar * Base +) -> Result<PointVariable, CircuitError>

    Obtain the fixed-based scalar multiplication result of scalar * Base Currently only supports Affine::<P> scalar multiplication.

    source

    pub fn variable_base_scalar_mul<P: Config<BaseField = F>>( &mut self, scalar: Variable, base: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Obtain a variable of the result of a variable base scalar +) -> Result<PointVariable, CircuitError>

    Obtain a variable of the result of a variable base scalar multiplication. both scalar and base are variables. Currently only supports Affine::<P>. If the parameter is bandersnatch, we will use GLV multiplication.

    @@ -240,7 +240,7 @@ &mut self, scalar_bits_le: &[BoolVar], base: &PointVariable, -) -> Result<PointVariable, CircuitError>

    Obtain a variable of the result of a variable base scalar +) -> Result<PointVariable, CircuitError>

    Obtain a variable of the result of a variable base scalar multiplication. Both scalar_bits_le and base are variables, where scalar_bits_le is the little-endian form of the scalar. Currently only supports Affine::<P>.

    @@ -248,7 +248,7 @@ &mut self, lookup_vars: &[(Variable, Variable, Variable)], table_vars: &[(Variable, Variable)], -) -> Result<(), CircuitError>

    Create a table with keys/values +) -> Result<(), CircuitError>

    Create a table with keys/values [0, …, n - 1] and [table_vars[0], …, table_vars[n - 1]]; and create a list of variable tuples to be looked up: @@ -259,14 +259,14 @@ x: &FpElemVar<F>, y: &FpElemVar<F>, p: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: +) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: Given Fp elements x, y and modulus p, compute z = x + y mod p

    source

    pub fn mod_add_constant( &mut self, x: &FpElemVar<F>, y: &FpElem<F>, p: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: +) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: Given input x: Fp element variable, y: Fp element, and @@ -277,21 +277,21 @@ &mut self, x: &[FpElemVar<F>], p: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: +) -> Result<FpElemVar<F>, CircuitError>

    Modular addition gate: Given Fp elements &[x] and modulus p, compute z = \sum x mod p

    source

    pub fn mod_mul( &mut self, x: &FpElemVar<F>, y: &FpElemVar<F>, p: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Modular multiplication gate: +) -> Result<FpElemVar<F>, CircuitError>

    Modular multiplication gate: Given Fp elements x, y and modulus p, compute z = x * y mod p.

    source

    pub fn mod_mul_constant( &mut self, x: &FpElemVar<F>, y: &FpElem<F>, p: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Modular multiplication gate: +) -> Result<FpElemVar<F>, CircuitError>

    Modular multiplication gate: Given input x: Fp element variable, y: Fp element, and @@ -301,14 +301,14 @@

    source

    pub fn mod_negate( &mut self, x: &FpElemVar<F>, - p: &F, -) -> Result<FpElemVar<F>, CircuitError>

    Negate an FpElemVar mod p where p is a public variable which is + p: &F, +) -> Result<FpElemVar<F>, CircuitError>

    Negate an FpElemVar mod p where p is a public variable which is also the modulus for the FpElem element.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn non_native_power_11_gate<T: PrimeField>( &mut self, x: &FpElemVar<F>, x_to_11: &FpElemVar<F>, -) -> Result<(), CircuitError>

    generate a non-native circuit for the statement x^11 = y

    +) -> Result<(), CircuitError>

    generate a non-native circuit for the statement x^11 = y

    Input:

    • variable representation of x over a target field T whose order is @@ -319,7 +319,7 @@
    source

    pub fn non_native_power_11_gen<T: PrimeField>( &mut self, x: &FpElemVar<F>, -) -> Result<FpElemVar<F>, CircuitError>

    generate a non-native circuit for the statement x^11 = y

    +) -> Result<FpElemVar<F>, CircuitError>

    generate a non-native circuit for the statement x^11 = y

    Input: variable representation of x over a target field T whose order is less than F.

    Output: variable representation of x^11

    @@ -327,7 +327,7 @@
    source

    pub fn non_native_power_5_gen<T: PrimeField>( &mut self, x: &FpElemVar<F>, -) -> Result<FpElemVar<F>, CircuitError>

    generate a non-native circuit for the statement x^5 = y

    +) -> Result<FpElemVar<F>, CircuitError>

    generate a non-native circuit for the statement x^5 = y

    Input: variable representation of x over a target field T whose order is less than F.

    Output: variable representation of x^5

    @@ -337,33 +337,33 @@ x: &[FpElemVar<F>], y: &[FpElem<F>], c: &FpElem<F>, -) -> Result<FpElemVar<F>, CircuitError>

    Input vector x and y, and a constant c, +) -> Result<FpElemVar<F>, CircuitError>

    Input vector x and y, and a constant c, generate a non-native circuit for the statement var_output = inner_product(x, y) + c Input: variable representation of x, y, c over a target field T whose order is less than F.

    Cost: 4 mod_mul_constant + 1 mod_add_internal

    -
    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn num_range_blocks(&self) -> Result<usize, CircuitError>

    The number of range blocks, i.e., the minimal integer such that +

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn num_range_blocks(&self) -> Result<usize, CircuitError>

    The number of range blocks, i.e., the minimal integer such that RANGE_SIZE^NUM_RANGES >= p,

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn quad_poly_gate( &mut self, - wires: &[Variable; 5], - q_lc: &[F; 4], - q_mul: &[F; 2], + wires: &[Variable; 5], + q_lc: &[F; 4], + q_mul: &[F; 2], q_o: F, q_c: F, -) -> Result<(), CircuitError>

    Arithmetic gates

    +) -> Result<(), CircuitError>

    Arithmetic gates

    Quadratic polynomial gate: q1 * a + q2 * b + q3 * c + q4 * d + q12 * a * b + q34 * c * d + q_c = q_o * e, where q1, q2, q3, q4, q12, q34, q_c, q_o are selectors; a, b, c, d are input wires; e is the output wire. Return error if variables are invalid.

    source

    pub fn gen_quad_poly( &mut self, - wires: &[Variable; 4], - q_lc: &[F; 4], - q_mul: &[F; 2], + wires: &[Variable; 4], + q_lc: &[F; 4], + q_mul: &[F; 2], q_c: F, -) -> Result<Variable, CircuitError>

    Arithmetic gates

    +) -> Result<Variable, CircuitError>

    Arithmetic gates

    Quadratic polynomial gate: e = q1 * a + q2 * b + q3 * c + q4 * d + q12 * a * b + q34 * c * d + q_c, where q1, q2, q3, q4, q12, q34, @@ -372,207 +372,207 @@ Return error if variables are invalid.

    source

    pub fn lc_gate( &mut self, - wires: &[Variable; 5], - coeffs: &[F; 4], -) -> Result<(), CircuitError>

    Constrain a linear combination gate: + wires: &[Variable; 5], + coeffs: &[F; 4], +) -> Result<(), CircuitError>

    Constrain a linear combination gate: q1 * a + q2 * b + q3 * c + q4 * d = y

    source

    pub fn lc( &mut self, - wires_in: &[Variable; 4], - coeffs: &[F; 4], -) -> Result<Variable, CircuitError>

    Obtain a variable representing a linear combination. + wires_in: &[Variable; 4], + coeffs: &[F; 4], +) -> Result<Variable, CircuitError>

    Obtain a variable representing a linear combination. Return error if variables are invalid.

    source

    pub fn mul_add_gate( &mut self, - wires: &[Variable; 5], - q_muls: &[F; 2], -) -> Result<(), CircuitError>

    Constrain a mul-addition gate: + wires: &[Variable; 5], + q_muls: &[F; 2], +) -> Result<(), CircuitError>

    Constrain a mul-addition gate: q_muls[0] * wires[0] * wires[1] + q_muls[1] * wires[2] * wires[3] = wires[4]

    source

    pub fn mul_add( &mut self, - wires_in: &[Variable; 4], - q_muls: &[F; 2], -) -> Result<Variable, CircuitError>

    Obtain a variable representing q12 * a * b + q34 * c * d, + wires_in: &[Variable; 4], + q_muls: &[F; 2], +) -> Result<Variable, CircuitError>

    Obtain a variable representing q12 * a * b + q34 * c * d, where a, b, c, d are input wires, and q12, q34 are selectors. Return error if variables are invalid.

    -
    source

    pub fn sum(&mut self, elems: &[Variable]) -> Result<Variable, CircuitError>

    Obtain a variable representing the sum of a list of variables. +

    source

    pub fn sum(&mut self, elems: &[Variable]) -> Result<Variable, CircuitError>

    Obtain a variable representing the sum of a list of variables. Return error if variables are invalid.

    source

    pub fn add_constant_gate( &mut self, x: Variable, c: F, y: Variable, -) -> Result<(), CircuitError>

    Constrain variable y to the addition of a and c, where c is a +) -> Result<(), CircuitError>

    Constrain variable y to the addition of a and c, where c is a constant value Return error if the input variables are invalid.

    source

    pub fn add_constant( &mut self, input_var: Variable, - elem: &F, -) -> Result<Variable, CircuitError>

    Obtains a variable representing an addition with a constant value + elem: &F, +) -> Result<Variable, CircuitError>

    Obtains a variable representing an addition with a constant value Return error if the input variable is invalid

    source

    pub fn mul_constant_gate( &mut self, x: Variable, c: F, y: Variable, -) -> Result<(), CircuitError>

    Constrain variable y to the product of a and c, where c is a +) -> Result<(), CircuitError>

    Constrain variable y to the product of a and c, where c is a constant value Return error if the input variables are invalid.

    source

    pub fn mul_constant( &mut self, input_var: Variable, - elem: &F, -) -> Result<Variable, CircuitError>

    Obtains a variable representing a multiplication with a constant value + elem: &F, +) -> Result<Variable, CircuitError>

    Obtains a variable representing a multiplication with a constant value Return error if the input variable is invalid

    -
    source

    pub fn power_11_gen(&mut self, x: Variable) -> Result<Variable, CircuitError>

    Return a variable to be the 11th power of the input variable. +

    source

    pub fn power_11_gen(&mut self, x: Variable) -> Result<Variable, CircuitError>

    Return a variable to be the 11th power of the input variable. Cost: 3 constraints.

    source

    pub fn power_11_gate( &mut self, x: Variable, x_to_11: Variable, -) -> Result<(), CircuitError>

    Constraint a variable to be the 11th power of another variable. +) -> Result<(), CircuitError>

    Constraint a variable to be the 11th power of another variable. Cost: 3 constraints.

    source

    pub fn truncate( &mut self, a: Variable, - bit_length: usize, -) -> Result<Variable, CircuitError>

    Obtain the truncation of the input. + bit_length: usize, +) -> Result<Variable, CircuitError>

    Obtain the truncation of the input. Constrain that the input and output values congruent modulo 2^bit_length. Return error if the input is invalid.

    source

    pub fn truncate_gate( &mut self, a: Variable, b: Variable, - bit_length: usize, -) -> Result<(), CircuitError>

    Truncation gate. + bit_length: usize, +) -> Result<(), CircuitError>

    Truncation gate. Constrain that b == a modulo 2^bit_length. Return error if the inputs are invalid; or b >= 2^bit_length.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn enforce_lt( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Constrain that a < b.

    source

    pub fn enforce_leq( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Constrain that a <= b

    source

    pub fn enforce_gt( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Constrain that a > b.

    source

    pub fn enforce_geq( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Constrain that a >= b.

    source

    pub fn is_lt( &mut self, a: Variable, b: Variable, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether a < b.

    source

    pub fn is_gt( &mut self, a: Variable, b: Variable, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether a > b.

    source

    pub fn is_leq( &mut self, a: Variable, b: Variable, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether a <= b.

    source

    pub fn is_geq( &mut self, a: Variable, b: Variable, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether a >= b.

    source

    pub fn is_lt_constant( &mut self, a: Variable, val: F, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether the variable a is less than a given constant val.

    source

    pub fn is_leq_constant( &mut self, a: Variable, val: F, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether the variable a is less than or equal to a given constant val.

    source

    pub fn is_gt_constant( &mut self, a: Variable, val: F, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether the variable a is greater than a given constant val.

    source

    pub fn is_geq_constant( &mut self, a: Variable, val: F, -) -> Result<BoolVar, CircuitError>
    where +) -> Result<BoolVar, CircuitError>
    where F: PrimeField,

    Returns a BoolVar indicating whether the variable a is greater than or equal a given constant val.

    source

    pub fn enforce_lt_constant( &mut self, a: Variable, val: F, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Enforce the variable a to be less than a given constant val.

    source

    pub fn enforce_leq_constant( &mut self, a: Variable, val: F, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Enforce the variable a to be less than or equal to a given constant val.

    source

    pub fn enforce_gt_constant( &mut self, a: Variable, val: F, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Enforce the variable a to be greater than a given constant val.

    source

    pub fn enforce_geq_constant( &mut self, a: Variable, val: F, -) -> Result<(), CircuitError>
    where +) -> Result<(), CircuitError>
    where F: PrimeField,

    Enforce the variable a to be greater than or equal a given constant val.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn emulated_witness<E: EmulationConfig<F>>( &self, var: &EmulatedVariable<E>, -) -> Result<E, CircuitError>

    Return the witness point for the circuit

    +) -> Result<E, CircuitError>

    Return the witness point for the circuit

    source

    pub fn create_emulated_variable<E: EmulationConfig<F>>( &mut self, val: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Add an emulated variable

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Add an emulated variable

    source

    pub fn create_constant_emulated_variable<E: EmulationConfig<F>>( &mut self, val: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Add a constant emulated variable

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Add a constant emulated variable

    source

    pub fn create_public_emulated_variable<E: EmulationConfig<F>>( &mut self, val: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Add a public emulated variable

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Add a public emulated variable

    source

    pub fn emulated_mul_gate<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, c: &EmulatedVariable<E>, -) -> Result<(), CircuitError>

    Constrain that a*b=c in the emulated field. +) -> Result<(), CircuitError>

    Constrain that a*b=c in the emulated field. Checking that a * b - k * E::MODULUS = c. This function doesn’t perform emulated variable validity check on the input a, b and c. We assume that they are already performed elsewhere.

    @@ -580,26 +580,26 @@ &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a*b.

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a*b.

    source

    pub fn emulated_mul_constant_gate<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: E, c: &EmulatedVariable<E>, -) -> Result<(), CircuitError>

    Constrain that a*b=c in the emulated field for a constant b. +) -> Result<(), CircuitError>

    Constrain that a*b=c in the emulated field for a constant b. This function doesn’t perform emulated variable validity check on the input a and c. We assume that they are already performed elsewhere.

    source

    pub fn emulated_mul_constant<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a*b.

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a*b.

    source

    pub fn emulated_add_gate<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, c: &EmulatedVariable<E>, -) -> Result<(), CircuitError>

    Constrain that a+b=c in the emulated field. +) -> Result<(), CircuitError>

    Constrain that a+b=c in the emulated field. Checking whether a + b = k * E::MODULUS + c This function doesn’t perform emulated variable validity check on the input a, b and c. We assume that they are already performed elsewhere.

    @@ -607,38 +607,38 @@ &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a+b.

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a+b.

    source

    pub fn emulated_sub<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a-b.

    +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a-b.

    source

    pub fn emulated_add_constant_gate<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: E, c: &EmulatedVariable<E>, -) -> Result<(), CircuitError>

    Constrain that a+b=c in the emulated field. +) -> Result<(), CircuitError>

    Constrain that a+b=c in the emulated field. This function doesn’t perform emulated variable validity check on the input a and c. We assume that they are already performed elsewhere.

    source

    pub fn emulated_add_constant<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a + b where b is a +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a + b where b is a constant.

    source

    pub fn emulated_sub_constant<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: E, -) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a - b where b is a +) -> Result<EmulatedVariable<E>, CircuitError>

    Return an EmulatedVariable which equals to a - b where b is a constant.

    source

    pub fn conditional_select_emulated<E: EmulationConfig<F>>( &mut self, b: BoolVar, p0: &EmulatedVariable<E>, p1: &EmulatedVariable<E>, -) -> Result<EmulatedVariable<E>, CircuitError>

    Obtain an emulated variable of the conditional selection from 2 emulated +) -> Result<EmulatedVariable<E>, CircuitError>

    Obtain an emulated variable of the conditional selection from 2 emulated variables. b is a boolean variable that indicates selection of P_b from (P0, P1). Return error if invalid input parameters are provided.

    @@ -646,97 +646,97 @@ &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, -) -> Result<(), CircuitError>

    Constrain two emulated variables to be the same. +) -> Result<(), CircuitError>

    Constrain two emulated variables to be the same. Return error if the input variables are invalid.

    source

    pub fn is_emulated_var_equal<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, b: &EmulatedVariable<E>, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated variables +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input emulated variables are equal. Return error if variables are invalid.

    source

    pub fn is_emulated_var_zero<E: EmulationConfig<F>>( &mut self, a: &EmulatedVariable<E>, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether the input emulated variable +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether the input emulated variable is zero. Return error if variables are invalid.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn logic_or_gate( &mut self, a: BoolVar, b: BoolVar, -) -> Result<(), CircuitError>

    Constrain that a is true or b is true. +) -> Result<(), CircuitError>

    Constrain that a is true or b is true. Return error if variables are invalid.

    source

    pub fn is_equal( &mut self, a: Variable, b: Variable, -) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input variables are +) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether two input variables are equal. Return error if variables are invalid.

    -
    source

    pub fn is_zero(&mut self, a: Variable) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether input variable is zero. +

    source

    pub fn is_zero(&mut self, a: Variable) -> Result<BoolVar, CircuitError>

    Obtain a bool variable representing whether input variable is zero. Return error if the input variable is invalid.

    -
    source

    pub fn non_zero_gate(&mut self, var: Variable) -> Result<(), CircuitError>

    Constrain a variable to be non-zero. +

    source

    pub fn non_zero_gate(&mut self, var: Variable) -> Result<(), CircuitError>

    Constrain a variable to be non-zero. Return error if the variable is invalid.

    -
    source

    pub fn logic_neg(&mut self, a: BoolVar) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic negation gate. +

    source

    pub fn logic_neg(&mut self, a: BoolVar) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic negation gate. Return the index of the variable. Return error if the input variable is invalid.

    source

    pub fn logic_and( &mut self, a: BoolVar, b: BoolVar, -) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic AND gate. Return +) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic AND gate. Return the index of the variable. Return error if the input variables are invalid.

    source

    pub fn logic_and_all( &mut self, vars: &[BoolVar], -) -> Result<BoolVar, CircuitError>

    Given a list of boolean variables, obtain a variable representing the +) -> Result<BoolVar, CircuitError>

    Given a list of boolean variables, obtain a variable representing the result of a logic AND gate. Return the index of the variable. Return error if the input variables are invalid.

    source

    pub fn logic_or( &mut self, a: BoolVar, b: BoolVar, -) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic OR gate. Return the +) -> Result<BoolVar, CircuitError>

    Obtain a variable representing the result of a logic OR gate. Return the index of the variable. Return error if the input variables are invalid.

    -
    source

    pub fn enforce_true(&mut self, a: Variable) -> Result<(), CircuitError>

    Assuming values represented by a is boolean. +

    source

    pub fn enforce_true(&mut self, a: Variable) -> Result<(), CircuitError>

    Assuming values represented by a is boolean. Constrain a is true

    -
    source

    pub fn enforce_false(&mut self, a: Variable) -> Result<(), CircuitError>

    Assuming values represented by a is boolean. +

    source

    pub fn enforce_false(&mut self, a: Variable) -> Result<(), CircuitError>

    Assuming values represented by a is boolean. Constrain a is false

    source

    pub fn conditional_select( &mut self, b: BoolVar, x_0: Variable, x_1: Variable, -) -> Result<Variable, CircuitError>

    Obtain a variable that equals x_0 if b is zero, or x_1 if b is +) -> Result<Variable, CircuitError>

    Obtain a variable that equals x_0 if b is zero, or x_1 if b is one. Return error if variables are invalid.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    source

    pub fn enforce_in_range( &mut self, a: Variable, - bit_len: usize, -) -> Result<(), CircuitError>

    Constrain a variable to be within the [0, 2^bit_len) range + bit_len: usize, +) -> Result<(), CircuitError>

    Constrain a variable to be within the [0, 2^bit_len) range Return error if the variable is invalid.

    source

    pub fn is_in_range( &mut self, a: Variable, - bit_len: usize, -) -> Result<BoolVar, CircuitError>

    Return a boolean variable indicating whether variable a is in the + bit_len: usize, +) -> Result<BoolVar, CircuitError>

    Return a boolean variable indicating whether variable a is in the range [0, 2^bit_len). Return error if the variable is invalid. TODO: optimize the gate for UltraPlonk.

    source

    pub fn unpack( &mut self, a: Variable, - bit_len: usize, -) -> Result<Vec<BoolVar>, CircuitError>

    Obtain the bit_len-long binary representation of variable a + bit_len: usize, +) -> Result<Vec<BoolVar>, CircuitError>

    Obtain the bit_len-long binary representation of variable a Return a list of variables [b0, …, b_bit_len] which is the binary representation of a. Return error if the a is not the range of [0, 2^bit_len).

    source§

    impl<F: FftField> PlonkCircuit<F>

    source

    pub fn new_turbo_plonk() -> Self

    Construct a new TurboPlonk circuit.

    -
    source

    pub fn new_ultra_plonk(range_bit_len: usize) -> Self

    Construct a new UltraPlonk circuit.

    +
    source

    pub fn new_ultra_plonk(range_bit_len: usize) -> Self

    Construct a new UltraPlonk circuit.

    source

    pub fn insert_gate( &mut self, - wire_vars: &[Variable; 5], - gate: Box<dyn Gate<F>>, -) -> Result<(), CircuitError>

    Insert a general (algebraic) gate

    + wire_vars: &[Variable; 5], + gate: Box<dyn Gate<F>>, +) -> Result<(), CircuitError>

    Insert a general (algebraic) gate

    • wire_vars - wire variables. Each of these variables must be in range
    • gate - specific gate to be inserted
    • @@ -745,10 +745,10 @@
    source

    pub fn add_range_check_variable( &mut self, var: Variable, -) -> Result<(), CircuitError>

    Add a range_check gate that checks whether a variable is in the range +) -> Result<(), CircuitError>

    Add a range_check gate that checks whether a variable is in the range [0, range_size). Return an error if the circuit does not support lookup.

    -
    source

    pub fn check_var_bound(&self, var: Variable) -> Result<(), CircuitError>

    Checks if a variable is strictly less than the number of variables. +

    source

    pub fn check_var_bound(&self, var: Variable) -> Result<(), CircuitError>

    Checks if a variable is strictly less than the number of variables. This function must be invoked for each gate as this check is not applied in the function insert_gate

      @@ -756,176 +756,177 @@
    • returns - Error if the variable is out of bound (i.e. >= number of variables)
    -
    source

    pub fn check_vars_bound(&self, vars: &[Variable]) -> Result<(), CircuitError>

    Check if a list of variables are strictly less than the number of +

    source

    pub fn check_vars_bound(&self, vars: &[Variable]) -> Result<(), CircuitError>

    Check if a list of variables are strictly less than the number of variables.

    • vars - variables to check
    • returns - Error if the variable is out of bound (i.e. >= number of variables)
    -
    source

    pub fn witness_mut(&mut self, idx: Variable) -> &mut F

    Change the value of a variable. Only used for testing.

    -
    source

    pub fn range_bit_len(&self) -> Result<usize, CircuitError>

    The bit length of UltraPlonk range gates.

    -
    source

    pub fn range_size(&self) -> Result<usize, CircuitError>

    The range size of UltraPlonk range gates.

    +
    source

    pub fn witness_mut(&mut self, idx: Variable) -> &mut F

    Change the value of a variable. Only used for testing.

    +
    source

    pub fn range_bit_len(&self) -> Result<usize, CircuitError>

    The bit length of UltraPlonk range gates.

    +
    source

    pub fn range_size(&self) -> Result<usize, CircuitError>

    The range size of UltraPlonk range gates.

    source§

    impl<F: PrimeField> PlonkCircuit<F>

    Methods for finalizing and merging the circuits.

    -
    source

    pub fn finalize_for_arithmetization(&mut self) -> Result<(), CircuitError>

    Finalize the setup of the circuit before arithmetization.

    +
    source

    pub fn finalize_for_arithmetization(&mut self) -> Result<(), CircuitError>

    Finalize the setup of the circuit before arithmetization.

    source

    pub fn finalize_for_mergeable_circuit( &mut self, circuit_type: MergeableCircuitType, -) -> Result<(), CircuitError>

    Finalize the setup of a mergeable circuit. +) -> Result<(), CircuitError>

    Finalize the setup of a mergeable circuit. Two circuits can be merged only if they are with different circuit types The method only supports TurboPlonk circuits.

    -
    source

    pub fn merge(&self, other: &Self) -> Result<Self, CircuitError>

    Merge a type A circuit with a type B circuit. +

    source

    pub fn merge(&self, other: &Self) -> Result<Self, CircuitError>

    Merge a type A circuit with a type B circuit. Both circuits should have been finalized before. The method only supports TurboPlonk circuits.

    Trait Implementations§

    source§

    impl<F> Arithmetization<F> for PlonkCircuit<F>
    where - F: PrimeField,

    source§

    fn srs_size(&self) -> Result<usize, CircuitError>

    The required SRS size for the circuit.
    source§

    fn eval_domain_size(&self) -> Result<usize, CircuitError>

    Get the size of the evaluation domain for arithmetization (after circuit + F: PrimeField,
    source§

    fn srs_size(&self) -> Result<usize, CircuitError>

    The required SRS size for the circuit.
    source§

    fn eval_domain_size(&self) -> Result<usize, CircuitError>

    Get the size of the evaluation domain for arithmetization (after circuit has been finalized).
    source§

    fn compute_selector_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return selector polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>
    Compute and return selector polynomials. Return an error if the circuit has not been finalized yet.
    source§

    fn compute_extended_permutation_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return extended permutation polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>
    Compute and return extended permutation polynomials. Return an error if the circuit has not been finalized yet.
    source§

    fn compute_prod_permutation_polynomial( &self, - beta: &F, - gamma: &F, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for permutation arguments. + beta: &F, + gamma: &F, +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the product polynomial for permutation arguments. Return an error if the circuit has not been finalized yet.
    source§

    fn compute_wire_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return the list of wiring witness polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>
    Compute and return the list of wiring witness polynomials. Return an error if the circuit has not been finalized yet.
    source§

    fn compute_pub_input_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the public input polynomial. +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the public input polynomial. Return an error if the circuit has not been finalized yet. The IO gates of the circuit are guaranteed to be in the front.
    source§

    fn compute_range_table_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Plookup-related methods +) -> Result<DensePolynomial<F>, CircuitError>
    Plookup-related methods Return default errors if the constraint system does not support lookup gates. Read more
    source§

    fn compute_key_table_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the key table +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the polynomial that interpolates the key table elements. Return an error if the circuit does not support lookup or has not been finalized yet.
    source§

    fn compute_table_dom_sep_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the table domain +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the polynomial that interpolates the table domain sepration ids. Return an error if the circuit does not support lookup or has not been finalized.
    source§

    fn compute_q_dom_sep_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the lookup domain +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the polynomial that interpolates the lookup domain sepration selectors for the lookup gates. Return an error if the -circuit does not support lookup or has not been finalized.
    source§

    fn compute_merged_lookup_table(&self, tau: F) -> Result<Vec<F>, CircuitError>

    Compute and return the combined lookup table vector given random +circuit does not support lookup or has not been finalized.
    source§

    fn compute_merged_lookup_table(&self, tau: F) -> Result<Vec<F>, CircuitError>

    Compute and return the combined lookup table vector given random challenge tau.
    source§

    fn compute_lookup_prod_polynomial( &self, - tau: &F, - beta: &F, - gamma: &F, - merged_lookup_table: &[F], - sorted_vec: &[F], -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for Plookup arguments. + tau: &F, + beta: &F, + gamma: &F, + merged_lookup_table: &[F], + sorted_vec: &[F], +) -> Result<DensePolynomial<F>, CircuitError>
    Compute and return the product polynomial for Plookup arguments. beta and gamma are random challenges, sorted_vec is the sorted concatenation of the lookup table and the lookup witnesses. Return an error if the circuit does not support lookup or has not been finalized yet.
    source§

    fn compute_lookup_sorted_vec_polynomials( &self, tau: F, - merged_lookup_table: &[F], -) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError>

    Compute the sorted concatenation of the (merged) lookup table and the + merged_lookup_table: &[F], +) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError>
    Compute the sorted concatenation of the (merged) lookup table and the witness values to be checked in lookup gates. Return the sorted vector and 2 polynomials that interpolate the vector. Return an error if the circuit does not support lookup or has not been finalized yet.
    source§

    impl<F: FftField> Circuit<F> for PlonkCircuit<F>

    source§

    fn zero(&self) -> Variable

    Default zero variable

    source§

    fn one(&self) -> Variable

    Default one variable

    -
    source§

    fn num_gates(&self) -> usize

    The number of constraints.
    source§

    fn num_vars(&self) -> usize

    The number of variables.
    source§

    fn num_inputs(&self) -> usize

    The number of public input variables.
    source§

    fn num_wire_types(&self) -> usize

    The number of wire types of the circuit. +
    source§

    fn num_gates(&self) -> usize

    The number of constraints.
    source§

    fn num_vars(&self) -> usize

    The number of variables.
    source§

    fn num_inputs(&self) -> usize

    The number of public input variables.
    source§

    fn num_wire_types(&self) -> usize

    The number of wire types of the circuit. E.g., UltraPlonk has 4 different types of input wires, 1 type of output -wires, and 1 type of lookup wires.
    source§

    fn public_input(&self) -> Result<Vec<F>, CircuitError>

    The list of public input values.
    source§

    fn check_circuit_satisfiability( +wires, and 1 type of lookup wires.

    source§

    fn public_input(&self) -> Result<Vec<F>, CircuitError>

    The list of public input values.
    source§

    fn check_circuit_satisfiability( &self, - pub_input: &[F], -) -> Result<(), CircuitError>

    Check circuit satisfiability against a public input.
    source§

    fn create_constant_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a constant variable to the circuit; return the index of the -variable.
    source§

    fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a variable to the circuit; return the index of the variable.
    source§

    fn create_public_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a public input variable; return the index of the variable.
    source§

    fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>

    Set a variable to a public variable
    source§

    fn witness(&self, idx: Variable) -> Result<F, CircuitError>

    Return the witness value of variable idx. + pub_input: &[F], +) -> Result<(), CircuitError>
    Check circuit satisfiability against a public input.
    source§

    fn create_constant_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a constant variable to the circuit; return the index of the +variable.
    source§

    fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a variable to the circuit; return the index of the variable.
    source§

    fn create_public_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a public input variable; return the index of the variable.
    source§

    fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>

    Set a variable to a public variable
    source§

    fn witness(&self, idx: Variable) -> Result<F, CircuitError>

    Return the witness value of variable idx. Return error if the input variable is invalid.
    source§

    fn enforce_constant( &mut self, var: Variable, constant: F, -) -> Result<(), CircuitError>

    Common gates that should be implemented in any constraint systems. Read more
    source§

    fn add_gate( +) -> Result<(), CircuitError>

    Common gates that should be implemented in any constraint systems. Read more
    source§

    fn add_gate( &mut self, a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the addition of a and b. -Return error if the input variables are invalid.
    source§

    fn add(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing an addition. +) -> Result<(), CircuitError>
    Constrain variable c to the addition of a and b. +Return error if the input variables are invalid.
    source§

    fn add(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing an addition. Return the index of the variable. Return error if the input variables are invalid.
    source§

    fn sub_gate( &mut self, a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the subtraction of a and b. -Return error if the input variables are invalid.
    source§

    fn sub(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a subtraction. +) -> Result<(), CircuitError>
    Constrain variable c to the subtraction of a and b. +Return error if the input variables are invalid.
    source§

    fn sub(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a subtraction. Return the index of the variable. Return error if the input variables are invalid.
    source§

    fn mul_gate( &mut self, a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the multiplication of a and b. -Return error if the input variables are invalid.
    source§

    fn mul(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a multiplication. +) -> Result<(), CircuitError>
    Constrain variable c to the multiplication of a and b. +Return error if the input variables are invalid.
    source§

    fn mul(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a multiplication. Return the index of the variable. -Return error if the input variables are invalid.
    source§

    fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>

    Constrain a variable to a bool. +Return error if the input variables are invalid.
    source§

    fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>

    Constrain a variable to a bool. Return error if the input is invalid.
    source§

    fn enforce_equal( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>

    Constrain two variables to have the same value. -Return error if the input variables are invalid.
    source§

    fn pad_gates(&mut self, n: usize)

    Pad the circuit with n dummy gates
    source§

    fn support_lookup(&self) -> bool

    Plookup-related methods. +) -> Result<(), CircuitError>
    Constrain two variables to have the same value. +Return error if the input variables are invalid.
    source§

    fn pad_gates(&mut self, n: usize)

    Pad the circuit with n dummy gates
    source§

    fn support_lookup(&self) -> bool

    Plookup-related methods. Return true if the circuit support lookup gates.
    source§

    fn create_boolean_variable( &mut self, - val: bool, -) -> Result<BoolVar, CircuitError>

    Add a bool variable to the circuit; return the index of the variable.
    source§

    fn create_public_boolean_variable( + val: bool, +) -> Result<BoolVar, CircuitError>

    Add a bool variable to the circuit; return the index of the variable.
    source§

    fn create_public_boolean_variable( &mut self, - val: bool, -) -> Result<BoolVar, CircuitError>

    Add a public bool variable to the circuit; return the index of the -variable.
    source§

    fn false_var(&self) -> BoolVar

    Return a default variable with value false (namely zero).
    source§

    fn true_var(&self) -> BoolVar

    Return a default variable with value true (namely one).
    source§

    impl<F> Clone for PlonkCircuit<F>
    where - F: FftField + Clone,

    source§

    fn clone(&self) -> PlonkCircuit<F>

    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<F> Debug for PlonkCircuit<F>
    where - F: FftField + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: FftField> Default for PlonkCircuit<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> MultiScalarMultiplicationCircuit<F, P> for PlonkCircuit<F>
    where + val: bool, +) -> Result<BoolVar, CircuitError>

    Add a public bool variable to the circuit; return the index of the +variable.
    source§

    fn false_var(&self) -> BoolVar

    Return a default variable with value false (namely zero).
    source§

    fn true_var(&self) -> BoolVar

    Return a default variable with value true (namely one).
    source§

    impl<F> Clone for PlonkCircuit<F>
    where + F: FftField + Clone,

    source§

    fn clone(&self) -> PlonkCircuit<F>

    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<F> Debug for PlonkCircuit<F>
    where + F: FftField + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: FftField> Default for PlonkCircuit<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> MultiScalarMultiplicationCircuit<F, P> for PlonkCircuit<F>
    where F: PrimeField, P: Config<BaseField = F>,

    source§

    fn msm( &mut self, bases: &[PointVariable], scalars: &[Variable], -) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications. +) -> Result<PointVariable, CircuitError>
    Compute the multi-scalar-multiplications. Use pippenger when the circuit supports lookup; Use naive method otherwise. Return error if the number bases does not match the number of scalars.
    source§

    fn msm_with_var_scalar_length( &mut self, bases: &[PointVariable], scalars: &[Variable], - scalar_bit_length: usize, -) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications where each scalar has at most -scalar_bit_length bits.

    Auto Trait Implementations§

    §

    impl<F> Freeze for PlonkCircuit<F>
    where - F: Freeze,

    §

    impl<F> !RefUnwindSafe for PlonkCircuit<F>

    §

    impl<F> !Send for PlonkCircuit<F>

    §

    impl<F> !Sync for PlonkCircuit<F>

    §

    impl<F> Unpin for PlonkCircuit<F>
    where - F: Unpin,

    §

    impl<F> !UnwindSafe for PlonkCircuit<F>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + scalar_bit_length: usize, +) -> Result<PointVariable, CircuitError>
    Compute the multi-scalar-multiplications where each scalar has at most +scalar_bit_length bits.

    Auto Trait Implementations§

    §

    impl<F> Freeze for PlonkCircuit<F>
    where + F: Freeze,

    §

    impl<F> !RefUnwindSafe for PlonkCircuit<F>

    §

    impl<F> !Send for PlonkCircuit<F>

    §

    impl<F> !Sync for PlonkCircuit<F>

    §

    impl<F> Unpin for PlonkCircuit<F>
    where + F: Unpin,

    §

    impl<F> !UnwindSafe for PlonkCircuit<F>

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/constraint_system/trait.Arithmetization.html b/jf_relation/constraint_system/trait.Arithmetization.html index c1465cc26..daeb23ea8 100644 --- a/jf_relation/constraint_system/trait.Arithmetization.html +++ b/jf_relation/constraint_system/trait.Arithmetization.html @@ -1,86 +1,86 @@ -Arithmetization in jf_relation::constraint_system - Rust

    Trait jf_relation::constraint_system::Arithmetization

    source ·
    pub trait Arithmetization<F: FftField>: Circuit<F> {
    +Arithmetization in jf_relation::constraint_system - Rust

    Trait jf_relation::constraint_system::Arithmetization

    source ·
    pub trait Arithmetization<F: FftField>: Circuit<F> {
     
    Show 14 methods // Required methods - fn srs_size(&self) -> Result<usize, CircuitError>; - fn eval_domain_size(&self) -> Result<usize, CircuitError>; + fn srs_size(&self) -> Result<usize, CircuitError>; + fn eval_domain_size(&self) -> Result<usize, CircuitError>; fn compute_selector_polynomials( &self, - ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; + ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; fn compute_extended_permutation_polynomials( &self, - ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; + ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; fn compute_prod_permutation_polynomial( &self, - beta: &F, - gamma: &F, - ) -> Result<DensePolynomial<F>, CircuitError>; + beta: &F, + gamma: &F, + ) -> Result<DensePolynomial<F>, CircuitError>; fn compute_wire_polynomials( &self, - ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; + ) -> Result<Vec<DensePolynomial<F>>, CircuitError>; fn compute_pub_input_polynomial( &self, - ) -> Result<DensePolynomial<F>, CircuitError>; + ) -> Result<DensePolynomial<F>, CircuitError>; // Provided methods fn compute_range_table_polynomial( &self, - ) -> Result<DensePolynomial<F>, CircuitError> { ... } + ) -> Result<DensePolynomial<F>, CircuitError> { ... } fn compute_key_table_polynomial( &self, - ) -> Result<DensePolynomial<F>, CircuitError> { ... } + ) -> Result<DensePolynomial<F>, CircuitError> { ... } fn compute_table_dom_sep_polynomial( &self, - ) -> Result<DensePolynomial<F>, CircuitError> { ... } + ) -> Result<DensePolynomial<F>, CircuitError> { ... } fn compute_q_dom_sep_polynomial( &self, - ) -> Result<DensePolynomial<F>, CircuitError> { ... } + ) -> Result<DensePolynomial<F>, CircuitError> { ... } fn compute_merged_lookup_table( &self, _tau: F, - ) -> Result<Vec<F>, CircuitError> { ... } + ) -> Result<Vec<F>, CircuitError> { ... } fn compute_lookup_sorted_vec_polynomials( &self, _tau: F, - _lookup_table: &[F], - ) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError> { ... } + _lookup_table: &[F], + ) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError> { ... } fn compute_lookup_prod_polynomial( &self, - _tau: &F, - _beta: &F, - _gamma: &F, - _lookup_table: &[F], - _sorted_vec: &[F], - ) -> Result<DensePolynomial<F>, CircuitError> { ... } + _tau: &F, + _beta: &F, + _gamma: &F, + _lookup_table: &[F], + _sorted_vec: &[F], + ) -> Result<DensePolynomial<F>, CircuitError> { ... }
    }
    Expand description

    An interface that transforms Plonk circuits to polynomial used by Plonk-based SNARKs.

    -

    Required Methods§

    source

    fn srs_size(&self) -> Result<usize, CircuitError>

    The required SRS size for the circuit.

    -
    source

    fn eval_domain_size(&self) -> Result<usize, CircuitError>

    Get the size of the evaluation domain for arithmetization (after circuit +

    Required Methods§

    source

    fn srs_size(&self) -> Result<usize, CircuitError>

    The required SRS size for the circuit.

    +
    source

    fn eval_domain_size(&self) -> Result<usize, CircuitError>

    Get the size of the evaluation domain for arithmetization (after circuit has been finalized).

    source

    fn compute_selector_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return selector polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return selector polynomials. Return an error if the circuit has not been finalized yet.

    source

    fn compute_extended_permutation_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return extended permutation polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return extended permutation polynomials. Return an error if the circuit has not been finalized yet.

    source

    fn compute_prod_permutation_polynomial( &self, - beta: &F, - gamma: &F, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for permutation arguments. + beta: &F, + gamma: &F, +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for permutation arguments. Return an error if the circuit has not been finalized yet.

    source

    fn compute_wire_polynomials( &self, -) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return the list of wiring witness polynomials. +) -> Result<Vec<DensePolynomial<F>>, CircuitError>

    Compute and return the list of wiring witness polynomials. Return an error if the circuit has not been finalized yet.

    source

    fn compute_pub_input_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the public input polynomial. +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the public input polynomial. Return an error if the circuit has not been finalized yet. The IO gates of the circuit are guaranteed to be in the front.

    Provided Methods§

    source

    fn compute_range_table_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Plookup-related methods +) -> Result<DensePolynomial<F>, CircuitError>

    Plookup-related methods Return default errors if the constraint system does not support lookup gates.

    Compute and return the polynomial that interpolates the range table @@ -88,38 +88,38 @@ has not been finalized yet.

    source

    fn compute_key_table_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the key table +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the key table elements. Return an error if the circuit does not support lookup or has not been finalized yet.

    source

    fn compute_table_dom_sep_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the table domain +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the table domain sepration ids. Return an error if the circuit does not support lookup or has not been finalized.

    source

    fn compute_q_dom_sep_polynomial( &self, -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the lookup domain +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the polynomial that interpolates the lookup domain sepration selectors for the lookup gates. Return an error if the circuit does not support lookup or has not been finalized.

    -
    source

    fn compute_merged_lookup_table(&self, _tau: F) -> Result<Vec<F>, CircuitError>

    Compute and return the combined lookup table vector given random +

    source

    fn compute_merged_lookup_table(&self, _tau: F) -> Result<Vec<F>, CircuitError>

    Compute and return the combined lookup table vector given random challenge tau.

    source

    fn compute_lookup_sorted_vec_polynomials( &self, _tau: F, - _lookup_table: &[F], -) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError>

    Compute the sorted concatenation of the (merged) lookup table and the + _lookup_table: &[F], +) -> Result<(Vec<F>, DensePolynomial<F>, DensePolynomial<F>), CircuitError>

    Compute the sorted concatenation of the (merged) lookup table and the witness values to be checked in lookup gates. Return the sorted vector and 2 polynomials that interpolate the vector. Return an error if the circuit does not support lookup or has not been finalized yet.

    source

    fn compute_lookup_prod_polynomial( &self, - _tau: &F, - _beta: &F, - _gamma: &F, - _lookup_table: &[F], - _sorted_vec: &[F], -) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for Plookup arguments. + _tau: &F, + _beta: &F, + _gamma: &F, + _lookup_table: &[F], + _sorted_vec: &[F], +) -> Result<DensePolynomial<F>, CircuitError>

    Compute and return the product polynomial for Plookup arguments. beta and gamma are random challenges, sorted_vec is the sorted concatenation of the lookup table and the lookup witnesses. Return an error if the circuit does not support lookup or diff --git a/jf_relation/constraint_system/trait.Circuit.html b/jf_relation/constraint_system/trait.Circuit.html index fd1b8c7fb..e4da7e947 100644 --- a/jf_relation/constraint_system/trait.Circuit.html +++ b/jf_relation/constraint_system/trait.Circuit.html @@ -1,111 +1,111 @@ -Circuit in jf_relation::constraint_system - Rust

    Trait jf_relation::constraint_system::Circuit

    source ·
    pub trait Circuit<F: Field> {
    +Circuit in jf_relation::constraint_system - Rust

    Trait jf_relation::constraint_system::Circuit

    source ·
    pub trait Circuit<F: Field> {
     
    Show 28 methods // Required methods - fn num_gates(&self) -> usize; - fn num_vars(&self) -> usize; - fn num_inputs(&self) -> usize; - fn num_wire_types(&self) -> usize; - fn public_input(&self) -> Result<Vec<F>, CircuitError>; + fn num_gates(&self) -> usize; + fn num_vars(&self) -> usize; + fn num_inputs(&self) -> usize; + fn num_wire_types(&self) -> usize; + fn public_input(&self) -> Result<Vec<F>, CircuitError>; fn check_circuit_satisfiability( &self, - pub_input: &[F], - ) -> Result<(), CircuitError>; + pub_input: &[F], + ) -> Result<(), CircuitError>; fn create_constant_variable( &mut self, val: F, - ) -> Result<Variable, CircuitError>; - fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>; + ) -> Result<Variable, CircuitError>; + fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>; fn create_public_variable( &mut self, val: F, - ) -> Result<Variable, CircuitError>; - fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>; + ) -> Result<Variable, CircuitError>; + fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>; fn zero(&self) -> Variable; fn one(&self) -> Variable; - fn witness(&self, idx: Variable) -> Result<F, CircuitError>; + fn witness(&self, idx: Variable) -> Result<F, CircuitError>; fn enforce_constant( &mut self, var: Variable, constant: F, - ) -> Result<(), CircuitError>; + ) -> Result<(), CircuitError>; fn add_gate( &mut self, a: Variable, b: Variable, c: Variable, - ) -> Result<(), CircuitError>; + ) -> Result<(), CircuitError>; fn add( &mut self, a: Variable, b: Variable, - ) -> Result<Variable, CircuitError>; + ) -> Result<Variable, CircuitError>; fn sub_gate( &mut self, a: Variable, b: Variable, c: Variable, - ) -> Result<(), CircuitError>; + ) -> Result<(), CircuitError>; fn sub( &mut self, a: Variable, b: Variable, - ) -> Result<Variable, CircuitError>; + ) -> Result<Variable, CircuitError>; fn mul_gate( &mut self, a: Variable, b: Variable, c: Variable, - ) -> Result<(), CircuitError>; + ) -> Result<(), CircuitError>; fn mul( &mut self, a: Variable, b: Variable, - ) -> Result<Variable, CircuitError>; - fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>; + ) -> Result<Variable, CircuitError>; + fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>; fn enforce_equal( &mut self, a: Variable, b: Variable, - ) -> Result<(), CircuitError>; - fn pad_gates(&mut self, n: usize); - fn support_lookup(&self) -> bool; + ) -> Result<(), CircuitError>; + fn pad_gates(&mut self, n: usize); + fn support_lookup(&self) -> bool; // Provided methods fn create_boolean_variable( &mut self, - val: bool, - ) -> Result<BoolVar, CircuitError> { ... } + val: bool, + ) -> Result<BoolVar, CircuitError> { ... } fn create_public_boolean_variable( &mut self, - val: bool, - ) -> Result<BoolVar, CircuitError> { ... } + val: bool, + ) -> Result<BoolVar, CircuitError> { ... } fn false_var(&self) -> BoolVar { ... } fn true_var(&self) -> BoolVar { ... }
    }
    Expand description

    An interface for Plonk constraint systems.

    -

    Required Methods§

    source

    fn num_gates(&self) -> usize

    The number of constraints.

    -
    source

    fn num_vars(&self) -> usize

    The number of variables.

    -
    source

    fn num_inputs(&self) -> usize

    The number of public input variables.

    -
    source

    fn num_wire_types(&self) -> usize

    The number of wire types of the circuit. +

    Required Methods§

    source

    fn num_gates(&self) -> usize

    The number of constraints.

    +
    source

    fn num_vars(&self) -> usize

    The number of variables.

    +
    source

    fn num_inputs(&self) -> usize

    The number of public input variables.

    +
    source

    fn num_wire_types(&self) -> usize

    The number of wire types of the circuit. E.g., UltraPlonk has 4 different types of input wires, 1 type of output wires, and 1 type of lookup wires.

    -
    source

    fn public_input(&self) -> Result<Vec<F>, CircuitError>

    The list of public input values.

    +
    source

    fn public_input(&self) -> Result<Vec<F>, CircuitError>

    The list of public input values.

    source

    fn check_circuit_satisfiability( &self, - pub_input: &[F], -) -> Result<(), CircuitError>

    Check circuit satisfiability against a public input.

    -
    source

    fn create_constant_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a constant variable to the circuit; return the index of the + pub_input: &[F], +) -> Result<(), CircuitError>

    Check circuit satisfiability against a public input.

    +
    source

    fn create_constant_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a constant variable to the circuit; return the index of the variable.

    -
    source

    fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a variable to the circuit; return the index of the variable.

    -
    source

    fn create_public_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a public input variable; return the index of the variable.

    -
    source

    fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>

    Set a variable to a public variable

    +
    source

    fn create_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a variable to the circuit; return the index of the variable.

    +
    source

    fn create_public_variable(&mut self, val: F) -> Result<Variable, CircuitError>

    Add a public input variable; return the index of the variable.

    +
    source

    fn set_variable_public(&mut self, var: Variable) -> Result<(), CircuitError>

    Set a variable to a public variable

    source

    fn zero(&self) -> Variable

    Return a default variable with value zero.

    source

    fn one(&self) -> Variable

    Return a default variable with value one.

    -
    source

    fn witness(&self, idx: Variable) -> Result<F, CircuitError>

    Return the witness value of variable idx. +

    source

    fn witness(&self, idx: Variable) -> Result<F, CircuitError>

    Return the witness value of variable idx. Return error if the input variable is invalid.

    source

    fn enforce_constant( &mut self, var: Variable, constant: F, -) -> Result<(), CircuitError>

    Common gates that should be implemented in any constraint systems.

    +) -> Result<(), CircuitError>

    Common gates that should be implemented in any constraint systems.

    Constrain a variable to a constant. Return error if var is an invalid variable.

    source

    fn add_gate( @@ -113,9 +113,9 @@ a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the addition of a and b. +) -> Result<(), CircuitError>

    Constrain variable c to the addition of a and b. Return error if the input variables are invalid.

    -
    source

    fn add(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing an addition. +

    source

    fn add(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing an addition. Return the index of the variable. Return error if the input variables are invalid.

    source

    fn sub_gate( @@ -123,9 +123,9 @@ a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the subtraction of a and b. +) -> Result<(), CircuitError>

    Constrain variable c to the subtraction of a and b. Return error if the input variables are invalid.

    -
    source

    fn sub(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a subtraction. +

    source

    fn sub(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a subtraction. Return the index of the variable. Return error if the input variables are invalid.

    source

    fn mul_gate( @@ -133,30 +133,30 @@ a: Variable, b: Variable, c: Variable, -) -> Result<(), CircuitError>

    Constrain variable c to the multiplication of a and b. +) -> Result<(), CircuitError>

    Constrain variable c to the multiplication of a and b. Return error if the input variables are invalid.

    -
    source

    fn mul(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a multiplication. +

    source

    fn mul(&mut self, a: Variable, b: Variable) -> Result<Variable, CircuitError>

    Obtain a variable representing a multiplication. Return the index of the variable. Return error if the input variables are invalid.

    -
    source

    fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>

    Constrain a variable to a bool. +

    source

    fn enforce_bool(&mut self, a: Variable) -> Result<(), CircuitError>

    Constrain a variable to a bool. Return error if the input is invalid.

    source

    fn enforce_equal( &mut self, a: Variable, b: Variable, -) -> Result<(), CircuitError>

    Constrain two variables to have the same value. +) -> Result<(), CircuitError>

    Constrain two variables to have the same value. Return error if the input variables are invalid.

    -
    source

    fn pad_gates(&mut self, n: usize)

    Pad the circuit with n dummy gates

    -
    source

    fn support_lookup(&self) -> bool

    Plookup-related methods. +

    source

    fn pad_gates(&mut self, n: usize)

    Pad the circuit with n dummy gates

    +
    source

    fn support_lookup(&self) -> bool

    Plookup-related methods. Return true if the circuit support lookup gates.

    Provided Methods§

    source

    fn create_boolean_variable( &mut self, - val: bool, -) -> Result<BoolVar, CircuitError>

    Add a bool variable to the circuit; return the index of the variable.

    + val: bool, +) -> Result<BoolVar, CircuitError>

    Add a bool variable to the circuit; return the index of the variable.

    source

    fn create_public_boolean_variable( &mut self, - val: bool, -) -> Result<BoolVar, CircuitError>

    Add a public bool variable to the circuit; return the index of the + val: bool, +) -> Result<BoolVar, CircuitError>

    Add a public bool variable to the circuit; return the index of the variable.

    source

    fn false_var(&self) -> BoolVar

    Return a default variable with value false (namely zero).

    source

    fn true_var(&self) -> BoolVar

    Return a default variable with value true (namely one).

    diff --git a/jf_relation/constraint_system/type.GateId.html b/jf_relation/constraint_system/type.GateId.html index a61e5d1ba..540067179 100644 --- a/jf_relation/constraint_system/type.GateId.html +++ b/jf_relation/constraint_system/type.GateId.html @@ -1,2 +1,2 @@ -GateId in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::GateId

    source ·
    pub type GateId = usize;
    Expand description

    An index to a gate in circuit.

    +GateId in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::GateId

    source ·
    pub type GateId = usize;
    Expand description

    An index to a gate in circuit.

    \ No newline at end of file diff --git a/jf_relation/constraint_system/type.Variable.html b/jf_relation/constraint_system/type.Variable.html index eb4f4b1d7..ed7af91b9 100644 --- a/jf_relation/constraint_system/type.Variable.html +++ b/jf_relation/constraint_system/type.Variable.html @@ -1,2 +1,2 @@ -Variable in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::Variable

    source ·
    pub type Variable = usize;
    Expand description

    An index to one of the witness values.

    -

    Trait Implementations§

    source§

    impl From<BoolVar> for Variable

    source§

    fn from(bv: BoolVar) -> Self

    Converts to this type from the input type.
    \ No newline at end of file +Variable in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::Variable

    source ·
    pub type Variable = usize;
    Expand description

    An index to one of the witness values.

    +

    Trait Implementations§

    source§

    impl From<BoolVar> for Variable

    source§

    fn from(bv: BoolVar) -> Self

    Converts to this type from the input type.
    \ No newline at end of file diff --git a/jf_relation/constraint_system/type.WireId.html b/jf_relation/constraint_system/type.WireId.html index 882f10d8a..71455af4f 100644 --- a/jf_relation/constraint_system/type.WireId.html +++ b/jf_relation/constraint_system/type.WireId.html @@ -1,4 +1,4 @@ -WireId in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::WireId

    source ·
    pub type WireId = usize;
    Expand description

    An index to the type of gate wires. +WireId in jf_relation::constraint_system - Rust

    Type Alias jf_relation::constraint_system::WireId

    source ·
    pub type WireId = usize;
    Expand description

    An index to the type of gate wires. There are 4 different types of input gate wires (with indices 0..3), 1 type of output gate wires (with index 4), and 1 type of lookup gate wires (with index 5).

    diff --git a/jf_relation/enum.CircuitError.html b/jf_relation/enum.CircuitError.html index 74b281b21..0401df756 100644 --- a/jf_relation/enum.CircuitError.html +++ b/jf_relation/enum.CircuitError.html @@ -1,60 +1,60 @@ -CircuitError in jf_relation - Rust

    Enum jf_relation::CircuitError

    source ·
    pub enum CircuitError {
    +CircuitError in jf_relation - Rust

    Enum jf_relation::CircuitError

    source ·
    pub enum CircuitError {
     
    Show 14 variants DomainCreationError, - VarIndexOutOfBound(usize, usize), - PubInputLenMismatch(usize, usize), - GateCheckFailure(usize, String), - ParameterError(String), + VarIndexOutOfBound(usize, usize), + PubInputLenMismatch(usize, usize), + GateCheckFailure(usize, String), + ParameterError(String), UnfinalizedCircuit, ModifyFinalizedCircuit, WrongPlonkType, LookupUnsupported, IndexError, - FieldAlgebraError(String), + FieldAlgebraError(String), UnsupportedCurve, - InternalError(String), - NotSupported(String), + InternalError(String), + NotSupported(String),
    }
    Expand description

    A enum specifying the possible failure modes of the circuit.

    Variants§

    §

    DomainCreationError

    Failed to create domain

    -
    §

    VarIndexOutOfBound(usize, usize)

    Variable index {0} is larger than the bound {1}.

    -
    §

    PubInputLenMismatch(usize, usize)

    Public input length {0} doesn’t match num_inputs = {1}.

    -
    §

    GateCheckFailure(usize, String)

    The {0}-th gate failed: {1}

    -
    §

    ParameterError(String)

    Invalid parameters: {0}

    +
    §

    VarIndexOutOfBound(usize, usize)

    Variable index {0} is larger than the bound {1}.

    +
    §

    PubInputLenMismatch(usize, usize)

    Public input length {0} doesn’t match num_inputs = {1}.

    +
    §

    GateCheckFailure(usize, String)

    The {0}-th gate failed: {1}

    +
    §

    ParameterError(String)

    Invalid parameters: {0}

    §

    UnfinalizedCircuit

    The circuit is not finalized before doing arithmetization

    §

    ModifyFinalizedCircuit

    Attempt to modify the finalized circuit

    §

    WrongPlonkType

    The circuit has wrong Plonk type

    §

    LookupUnsupported

    The circuit does not support lookup

    §

    IndexError

    Failed to get array value by index

    -
    §

    FieldAlgebraError(String)

    Algebra over field failed: {0}

    +
    §

    FieldAlgebraError(String)

    Algebra over field failed: {0}

    §

    UnsupportedCurve

    Unexpected field for elliptic curve operation, currently only support Bn254, BLS12-381/377 scalar field

    -
    §

    InternalError(String)

    ‼ ️Internal error! Please report to Crypto Team immediately!\n\Message: {0}

    -
    §

    NotSupported(String)

    Feature not supported: {0}

    -

    Trait Implementations§

    source§

    impl Debug for CircuitError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for CircuitError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for CircuitError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where - T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method +
    §

    InternalError(String)

    ‼ ️Internal error! Please report to Crypto Team immediately!\n\Message: {0}

    +
    §

    NotSupported(String)

    Feature not supported: {0}

    +

    Trait Implementations§

    source§

    impl Debug for CircuitError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for CircuitError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for CircuitError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where + T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +receivers.
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/emulated/index.html b/jf_relation/gadgets/ecc/emulated/index.html index f5a825f49..f91f24801 100644 --- a/jf_relation/gadgets/ecc/emulated/index.html +++ b/jf_relation/gadgets/ecc/emulated/index.html @@ -1,2 +1,2 @@ -jf_relation::gadgets::ecc::emulated - Rust

    Module jf_relation::gadgets::ecc::emulated

    source ·
    Expand description

    Elliptic curve related gates and gadgets for non-native fields

    +jf_relation::gadgets::ecc::emulated - Rust

    Module jf_relation::gadgets::ecc::emulated

    source ·
    Expand description

    Elliptic curve related gates and gadgets for non-native fields

    Structs§

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/emulated/struct.EmulatedSWPointVariable.html b/jf_relation/gadgets/ecc/emulated/struct.EmulatedSWPointVariable.html index 8ccf0c2e6..f83f95d8e 100644 --- a/jf_relation/gadgets/ecc/emulated/struct.EmulatedSWPointVariable.html +++ b/jf_relation/gadgets/ecc/emulated/struct.EmulatedSWPointVariable.html @@ -1,32 +1,33 @@ -EmulatedSWPointVariable in jf_relation::gadgets::ecc::emulated - Rust
    pub struct EmulatedSWPointVariable<E: PrimeField>(pub EmulatedVariable<E>, pub EmulatedVariable<E>, pub BoolVar);
    Expand description

    The variable represents an SW point in the emulated field.

    -

    Tuple Fields§

    §0: EmulatedVariable<E>§1: EmulatedVariable<E>§2: BoolVar

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedSWPointVariable<E>

    source§

    fn clone(&self) -> EmulatedSWPointVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedSWPointVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +EmulatedSWPointVariable in jf_relation::gadgets::ecc::emulated - Rust
    pub struct EmulatedSWPointVariable<E: PrimeField>(pub EmulatedVariable<E>, pub EmulatedVariable<E>, pub BoolVar);
    Expand description

    The variable represents an SW point in the emulated field.

    +

    Tuple Fields§

    §0: EmulatedVariable<E>§1: EmulatedVariable<E>§2: BoolVar

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedSWPointVariable<E>

    source§

    fn clone(&self) -> EmulatedSWPointVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedSWPointVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/emulated/struct.EmulatedTEPointVariable.html b/jf_relation/gadgets/ecc/emulated/struct.EmulatedTEPointVariable.html index d169eb7f2..67044ff65 100644 --- a/jf_relation/gadgets/ecc/emulated/struct.EmulatedTEPointVariable.html +++ b/jf_relation/gadgets/ecc/emulated/struct.EmulatedTEPointVariable.html @@ -1,32 +1,33 @@ -EmulatedTEPointVariable in jf_relation::gadgets::ecc::emulated - Rust
    pub struct EmulatedTEPointVariable<E: PrimeField>(pub EmulatedVariable<E>, pub EmulatedVariable<E>);
    Expand description

    The variable represents an TE point in the emulated field.

    -

    Tuple Fields§

    §0: EmulatedVariable<E>§1: EmulatedVariable<E>

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedTEPointVariable<E>

    source§

    fn clone(&self) -> EmulatedTEPointVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedTEPointVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +EmulatedTEPointVariable in jf_relation::gadgets::ecc::emulated - Rust
    pub struct EmulatedTEPointVariable<E: PrimeField>(pub EmulatedVariable<E>, pub EmulatedVariable<E>);
    Expand description

    The variable represents an TE point in the emulated field.

    +

    Tuple Fields§

    §0: EmulatedVariable<E>§1: EmulatedVariable<E>

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedTEPointVariable<E>

    source§

    fn clone(&self) -> EmulatedTEPointVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedTEPointVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/emulated/struct.SWPoint.html b/jf_relation/gadgets/ecc/emulated/struct.SWPoint.html index 1c2329128..a54e55bc1 100644 --- a/jf_relation/gadgets/ecc/emulated/struct.SWPoint.html +++ b/jf_relation/gadgets/ecc/emulated/struct.SWPoint.html @@ -1,69 +1,71 @@ -SWPoint in jf_relation::gadgets::ecc::emulated - Rust

    Struct jf_relation::gadgets::ecc::emulated::SWPoint

    source ·
    pub struct SWPoint<F: PrimeField>(pub F, pub F, pub bool);
    Expand description

    An elliptic curve point in short Weierstrass affine form (x, y, infinity).

    -

    Tuple Fields§

    §0: F§1: F§2: bool

    Trait Implementations§

    source§

    impl<F: PrimeField> CanonicalDeserialize for SWPoint<F>

    source§

    fn deserialize_with_mode<R: Read>( +SWPoint in jf_relation::gadgets::ecc::emulated - Rust

    Struct jf_relation::gadgets::ecc::emulated::SWPoint

    source ·
    pub struct SWPoint<F: PrimeField>(pub F, pub F, pub bool);
    Expand description

    An elliptic curve point in short Weierstrass affine form (x, y, infinity).

    +

    Tuple Fields§

    §0: F§1: F§2: bool

    Trait Implementations§

    source§

    impl<F: PrimeField> CanonicalDeserialize for SWPoint<F>

    source§

    fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    source§

    impl<F: PrimeField> CanonicalSerialize for SWPoint<F>

    source§

    fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
    where + R: Read,

    source§

    impl<F: PrimeField> CanonicalSerialize for SWPoint<F>

    source§

    fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<F: Clone + PrimeField> Clone for SWPoint<F>

    source§

    fn clone(&self) -> SWPoint<F>

    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<F: Debug + PrimeField> Debug for SWPoint<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> Default for SWPoint<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> From<Affine<P>> for SWPoint<F>
    where +) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<F: Clone + PrimeField> Clone for SWPoint<F>

    source§

    fn clone(&self) -> SWPoint<F>

    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<F: Debug + PrimeField> Debug for SWPoint<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> Default for SWPoint<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> From<Affine<P>> for SWPoint<F>
    where F: PrimeField, - P: SWCurveConfig<BaseField = F>,

    source§

    fn from(p: Affine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F: PartialEq + PrimeField> PartialEq for SWPoint<F>

    source§

    fn eq(&self, other: &SWPoint<F>) -> 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 + P: SWCurveConfig<BaseField = F>,
    source§

    fn from(p: Affine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F: PartialEq + PrimeField> PartialEq for SWPoint<F>

    source§

    fn eq(&self, other: &SWPoint<F>) -> 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<E, F> SerializableEmulatedStruct<F> for SWPoint<E>
    where E: EmulationConfig<F>, - F: PrimeField,

    source§

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.
    source§

    impl<F: PrimeField> Valid for SWPoint<F>

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
    where - Self: 'a,

    source§

    impl<F: Copy + PrimeField> Copy for SWPoint<F>

    source§

    impl<F: Eq + PrimeField> Eq for SWPoint<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for SWPoint<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for SWPoint<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for SWPoint<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for SWPoint<F>

    §

    impl<F> Sync for SWPoint<F>

    §

    impl<F> Unpin for SWPoint<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for SWPoint<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where - T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + F: PrimeField,

    source§

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.
    source§

    impl<F: PrimeField> Valid for SWPoint<F>

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
    where + Self: 'a,

    source§

    impl<F: Copy + PrimeField> Copy for SWPoint<F>

    source§

    impl<F: Eq + PrimeField> Eq for SWPoint<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for SWPoint<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for SWPoint<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for SWPoint<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for SWPoint<F>

    §

    impl<F> Sync for SWPoint<F>

    §

    impl<F> Unpin for SWPoint<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for SWPoint<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where + T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where H: Digest,

    §

    fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where - H: Digest,

    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: Digest,
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/index.html b/jf_relation/gadgets/ecc/index.html index 7cdc4917e..504859b3d 100644 --- a/jf_relation/gadgets/ecc/index.html +++ b/jf_relation/gadgets/ecc/index.html @@ -1,4 +1,4 @@ -jf_relation::gadgets::ecc - Rust

    Module jf_relation::gadgets::ecc

    source ·
    Expand description

    Elliptic curve related gates and gadgets. Including both native and +jf_relation::gadgets::ecc - Rust

    Module jf_relation::gadgets::ecc

    source ·
    Expand description

    Elliptic curve related gates and gadgets. Including both native and non-native fields.

    Modules§

    • Elliptic curve related gates and gadgets for non-native fields

    Structs§

    • Represent variable of an EC point.
    • An elliptic curve point in twisted Edwards affine form (x, y).

    Traits§

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/struct.PointVariable.html b/jf_relation/gadgets/ecc/struct.PointVariable.html index c114474fb..53a0355dd 100644 --- a/jf_relation/gadgets/ecc/struct.PointVariable.html +++ b/jf_relation/gadgets/ecc/struct.PointVariable.html @@ -1,37 +1,39 @@ -PointVariable in jf_relation::gadgets::ecc - Rust

    Struct jf_relation::gadgets::ecc::PointVariable

    source ·
    pub struct PointVariable(/* private fields */);
    Expand description

    Represent variable of an EC point.

    +PointVariable in jf_relation::gadgets::ecc - Rust

    Struct jf_relation::gadgets::ecc::PointVariable

    source ·
    pub struct PointVariable(/* private fields */);
    Expand description

    Represent variable of an EC point.

    Implementations§

    source§

    impl PointVariable

    source

    pub fn get_x(&self) -> Variable

    Get the variable representing the x coordinate of the point.

    source

    pub fn get_y(&self) -> Variable

    Get the variable representing the y coordinate of the point.

    -

    Trait Implementations§

    source§

    impl Clone for PointVariable

    source§

    fn clone(&self) -> PointVariable

    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 PointVariable

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for PointVariable

    source§

    fn eq(&self, other: &PointVariable) -> 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 PointVariable

    source§

    impl Eq for PointVariable

    source§

    impl StructuralPartialEq for PointVariable

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl Clone for PointVariable

    source§

    fn clone(&self) -> PointVariable

    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 PointVariable

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl PartialEq for PointVariable

    source§

    fn eq(&self, other: &PointVariable) -> 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 PointVariable

    source§

    impl Eq for PointVariable

    source§

    impl StructuralPartialEq for PointVariable

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/struct.TEPoint.html b/jf_relation/gadgets/ecc/struct.TEPoint.html index 2b52f43b3..7366d1cdb 100644 --- a/jf_relation/gadgets/ecc/struct.TEPoint.html +++ b/jf_relation/gadgets/ecc/struct.TEPoint.html @@ -1,54 +1,56 @@ -TEPoint in jf_relation::gadgets::ecc - Rust

    Struct jf_relation::gadgets::ecc::TEPoint

    source ·
    pub struct TEPoint<F: PrimeField>(/* private fields */);
    Expand description

    An elliptic curve point in twisted Edwards affine form (x, y).

    +TEPoint in jf_relation::gadgets::ecc - Rust

    Struct jf_relation::gadgets::ecc::TEPoint

    source ·
    pub struct TEPoint<F: PrimeField>(/* private fields */);
    Expand description

    An elliptic curve point in twisted Edwards affine form (x, y).

    Implementations§

    source§

    impl<F: PrimeField> TEPoint<F>

    source

    pub fn get_x(&self) -> F

    Get the x coordinate of the point.

    source

    pub fn get_y(&self) -> F

    Get the y coordinate of the point.

    source

    pub fn inverse(&self) -> Self

    The inverse point for the edward form.

    -

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for TEPoint<F>

    source§

    fn clone(&self) -> TEPoint<F>

    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<F: Debug + PrimeField> Debug for TEPoint<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> Default for TEPoint<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> From<Affine<P>> for TEPoint<F>
    where +

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for TEPoint<F>

    source§

    fn clone(&self) -> TEPoint<F>

    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<F: Debug + PrimeField> Debug for TEPoint<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> Default for TEPoint<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F, P> From<Affine<P>> for TEPoint<F>
    where F: PrimeField + SWToTEConParam, - P: SWParam<BaseField = F>,

    source§

    fn from(p: SWAffine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<Affine<P>> for TEPoint<F>
    where + P: SWParam<BaseField = F>,

    source§

    fn from(p: SWAffine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<Affine<P>> for TEPoint<F>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn from(p: Affine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<Projective<P>> for TEPoint<F>
    where + P: Config<BaseField = F>,

    source§

    fn from(p: Affine<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<Projective<P>> for TEPoint<F>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn from(p: Projective<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<TEPoint<F>> for Affine<P>
    where + P: Config<BaseField = F>,

    source§

    fn from(p: Projective<P>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<TEPoint<F>> for Affine<P>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn from(p: TEPoint<F>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<TEPoint<F>> for Projective<P>
    where + P: Config<BaseField = F>,

    source§

    fn from(p: TEPoint<F>) -> Self

    Converts to this type from the input type.
    source§

    impl<F, P> From<TEPoint<F>> for Projective<P>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn from(p: TEPoint<F>) -> Self

    Converts to this type from the input type.
    source§

    impl<F: PartialEq + PrimeField> PartialEq for TEPoint<F>

    source§

    fn eq(&self, other: &TEPoint<F>) -> 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 + P: Config<BaseField = F>,
    source§

    fn from(p: TEPoint<F>) -> Self

    Converts to this type from the input type.
    source§

    impl<F: PartialEq + PrimeField> PartialEq for TEPoint<F>

    source§

    fn eq(&self, other: &TEPoint<F>) -> 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<E, F> SerializableEmulatedStruct<F> for TEPoint<E>
    where E: EmulationConfig<F>, - F: PrimeField,

    source§

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.
    source§

    impl<F: Copy + PrimeField> Copy for TEPoint<F>

    source§

    impl<F: Eq + PrimeField> Eq for TEPoint<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for TEPoint<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for TEPoint<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for TEPoint<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for TEPoint<F>

    §

    impl<F> Sync for TEPoint<F>

    §

    impl<F> Unpin for TEPoint<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for TEPoint<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + F: PrimeField,
    source§

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.
    source§

    impl<F: Copy + PrimeField> Copy for TEPoint<F>

    source§

    impl<F: Eq + PrimeField> Eq for TEPoint<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for TEPoint<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for TEPoint<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for TEPoint<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for TEPoint<F>

    §

    impl<F> Sync for TEPoint<F>

    §

    impl<F> Unpin for TEPoint<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for TEPoint<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ecc/trait.MultiScalarMultiplicationCircuit.html b/jf_relation/gadgets/ecc/trait.MultiScalarMultiplicationCircuit.html index fe3553673..642743f6d 100644 --- a/jf_relation/gadgets/ecc/trait.MultiScalarMultiplicationCircuit.html +++ b/jf_relation/gadgets/ecc/trait.MultiScalarMultiplicationCircuit.html @@ -1,4 +1,4 @@ -MultiScalarMultiplicationCircuit in jf_relation::gadgets::ecc - Rust
    pub trait MultiScalarMultiplicationCircuit<F, P>
    where +MultiScalarMultiplicationCircuit in jf_relation::gadgets::ecc - Rust
    pub trait MultiScalarMultiplicationCircuit<F, P>
    where F: PrimeField, P: Config<BaseField = F>,
    { // Required methods @@ -6,19 +6,19 @@ &mut self, bases: &[PointVariable], scalars: &[Variable], - ) -> Result<PointVariable, CircuitError>; + ) -> Result<PointVariable, CircuitError>; fn msm_with_var_scalar_length( &mut self, bases: &[PointVariable], scalars: &[Variable], - scalar_bit_length: usize, - ) -> Result<PointVariable, CircuitError>; + scalar_bit_length: usize, + ) -> Result<PointVariable, CircuitError>; }
    Expand description

    Compute the multi-scalar-multiplications in circuit.

    Required Methods§

    source

    fn msm( &mut self, bases: &[PointVariable], scalars: &[Variable], -) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications. +) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications. Use pippenger when the circuit supports lookup; Use naive method otherwise. Return error if the number bases does not match the number of scalars.

    @@ -26,8 +26,8 @@ &mut self, bases: &[PointVariable], scalars: &[Variable], - scalar_bit_length: usize, -) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications where each scalar has at most + scalar_bit_length: usize, +) -> Result<PointVariable, CircuitError>

    Compute the multi-scalar-multiplications where each scalar has at most scalar_bit_length bits.

    Implementors§

    source§

    impl<F, P> MultiScalarMultiplicationCircuit<F, P> for PlonkCircuit<F>
    where F: PrimeField, diff --git a/jf_relation/gadgets/ecc/trait.SWToTEConParam.html b/jf_relation/gadgets/ecc/trait.SWToTEConParam.html index 355260ee5..4dbe1b1d0 100644 --- a/jf_relation/gadgets/ecc/trait.SWToTEConParam.html +++ b/jf_relation/gadgets/ecc/trait.SWToTEConParam.html @@ -1,4 +1,4 @@ -SWToTEConParam in jf_relation::gadgets::ecc - Rust

    Trait jf_relation::gadgets::ecc::SWToTEConParam

    source ·
    pub trait SWToTEConParam: PrimeField {
    +SWToTEConParam in jf_relation::gadgets::ecc - Rust

    Trait jf_relation::gadgets::ecc::SWToTEConParam

    source ·
    pub trait SWToTEConParam: PrimeField {
         const S: Self::BigInt;
         const NEG_ALPHA: Self::BigInt;
         const BETA: Self::BigInt;
    @@ -7,7 +7,7 @@
     

    Required Associated Constants§

    source

    const S: Self::BigInt

    Parameter S.

    source

    const NEG_ALPHA: Self::BigInt

    Parameter 1/alpha.

    source

    const BETA: Self::BigInt

    Parameter beta.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    -
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    -
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    -
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    Implementors§

    \ No newline at end of file +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    +
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    +
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    Dummy implementation for trait bounds

    +
    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    source§

    impl SWToTEConParam for Fq

    source§

    const S: Self::BigInt = _

    source§

    const NEG_ALPHA: Self::BigInt = _

    source§

    const BETA: Self::BigInt = _

    Implementors§

    \ No newline at end of file diff --git a/jf_relation/gadgets/fn.from_emulated_field.html b/jf_relation/gadgets/fn.from_emulated_field.html index 2a667073f..43775f374 100644 --- a/jf_relation/gadgets/fn.from_emulated_field.html +++ b/jf_relation/gadgets/fn.from_emulated_field.html @@ -1,4 +1,4 @@ -from_emulated_field in jf_relation::gadgets - Rust

    Function jf_relation::gadgets::from_emulated_field

    source ·
    pub fn from_emulated_field<E, F>(val: E) -> Vec<F>
    where +from_emulated_field in jf_relation::gadgets - Rust

    Function jf_relation::gadgets::from_emulated_field

    source ·
    pub fn from_emulated_field<E, F>(val: E) -> Vec<F>
    where E: EmulationConfig<F>, F: PrimeField,
    Expand description

    Convert an element in the emulated field to a list of native field elements.

    \ No newline at end of file diff --git a/jf_relation/gadgets/fn.to_emulated_field.html b/jf_relation/gadgets/fn.to_emulated_field.html index 445c12bf4..ad49a0366 100644 --- a/jf_relation/gadgets/fn.to_emulated_field.html +++ b/jf_relation/gadgets/fn.to_emulated_field.html @@ -1,4 +1,4 @@ -to_emulated_field in jf_relation::gadgets - Rust

    Function jf_relation::gadgets::to_emulated_field

    source ·
    pub fn to_emulated_field<E, F>(vals: &[F]) -> Result<E, CircuitError>
    where +to_emulated_field in jf_relation::gadgets - Rust

    Function jf_relation::gadgets::to_emulated_field

    source ·
    pub fn to_emulated_field<E, F>(vals: &[F]) -> Result<E, CircuitError>
    where E: EmulationConfig<F>, F: PrimeField,
    Expand description

    Inverse conversion of the from_emulated_field

    \ No newline at end of file diff --git a/jf_relation/gadgets/index.html b/jf_relation/gadgets/index.html index 68de6c42b..3f1e82214 100644 --- a/jf_relation/gadgets/index.html +++ b/jf_relation/gadgets/index.html @@ -1,3 +1,3 @@ -jf_relation::gadgets - Rust

    Module jf_relation::gadgets

    source ·
    Expand description

    Gates and gadgets implementations

    +jf_relation::gadgets - Rust

    Module jf_relation::gadgets

    source ·
    Expand description

    Gates and gadgets implementations

    Modules§

    • Elliptic curve related gates and gadgets. Including both native and non-native fields.
    • Utils for test
    • Implements ultra-plonk related circuits.

    Structs§

    Traits§

    Functions§

    \ No newline at end of file diff --git a/jf_relation/gadgets/struct.EmulatedVariable.html b/jf_relation/gadgets/struct.EmulatedVariable.html index b08297fe5..fce840812 100644 --- a/jf_relation/gadgets/struct.EmulatedVariable.html +++ b/jf_relation/gadgets/struct.EmulatedVariable.html @@ -1,33 +1,34 @@ -EmulatedVariable in jf_relation::gadgets - Rust

    Struct jf_relation::gadgets::EmulatedVariable

    source ·
    pub struct EmulatedVariable<E: PrimeField>(_, pub PhantomData<E>);
    Expand description

    The variable represents an element in the emulated field.

    -

    Tuple Fields§

    §1: PhantomData<E>

    Implementations§

    source§

    impl<E: PrimeField> EmulatedVariable<E>

    source

    pub fn native_vars(&self) -> Vec<Variable>

    Return the list of variables that simulate the field element

    -

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedVariable<E>

    source§

    fn clone(&self) -> EmulatedVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<E> Freeze for EmulatedVariable<E>

    §

    impl<E> RefUnwindSafe for EmulatedVariable<E>
    where - E: RefUnwindSafe,

    §

    impl<E> Send for EmulatedVariable<E>

    §

    impl<E> Sync for EmulatedVariable<E>

    §

    impl<E> Unpin for EmulatedVariable<E>
    where - E: Unpin,

    §

    impl<E> UnwindSafe for EmulatedVariable<E>
    where - E: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +EmulatedVariable in jf_relation::gadgets - Rust

    Struct jf_relation::gadgets::EmulatedVariable

    source ·
    pub struct EmulatedVariable<E: PrimeField>(_, pub PhantomData<E>);
    Expand description

    The variable represents an element in the emulated field.

    +

    Tuple Fields§

    §1: PhantomData<E>

    Implementations§

    source§

    impl<E: PrimeField> EmulatedVariable<E>

    source

    pub fn native_vars(&self) -> Vec<Variable>

    Return the list of variables that simulate the field element

    +

    Trait Implementations§

    source§

    impl<E: Clone + PrimeField> Clone for EmulatedVariable<E>

    source§

    fn clone(&self) -> EmulatedVariable<E>

    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<E: Debug + PrimeField> Debug for EmulatedVariable<E>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<E> Freeze for EmulatedVariable<E>

    §

    impl<E> RefUnwindSafe for EmulatedVariable<E>
    where + E: RefUnwindSafe,

    §

    impl<E> Send for EmulatedVariable<E>

    §

    impl<E> Sync for EmulatedVariable<E>

    §

    impl<E> Unpin for EmulatedVariable<E>
    where + E: Unpin,

    §

    impl<E> UnwindSafe for EmulatedVariable<E>
    where + E: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/test_utils/fn.test_variable_independence_for_circuit.html b/jf_relation/gadgets/test_utils/fn.test_variable_independence_for_circuit.html index fe0645b35..6ad4fdb7e 100644 --- a/jf_relation/gadgets/test_utils/fn.test_variable_independence_for_circuit.html +++ b/jf_relation/gadgets/test_utils/fn.test_variable_independence_for_circuit.html @@ -1,6 +1,6 @@ -test_variable_independence_for_circuit in jf_relation::gadgets::test_utils - Rust
    pub fn test_variable_independence_for_circuit<F: PrimeField>(
    +test_variable_independence_for_circuit in jf_relation::gadgets::test_utils - Rust
    pub fn test_variable_independence_for_circuit<F: PrimeField>(
         circuit_1: PlonkCircuit<F>,
         circuit_2: PlonkCircuit<F>,
    -) -> Result<(), CircuitError>
    Expand description

    two circuit with the same statement should have the same extended +) -> Result<(), CircuitError>

    Expand description

    two circuit with the same statement should have the same extended permutation polynomials even with different variable assignment

    \ No newline at end of file diff --git a/jf_relation/gadgets/test_utils/index.html b/jf_relation/gadgets/test_utils/index.html index 3ef69eb07..1464f8f34 100644 --- a/jf_relation/gadgets/test_utils/index.html +++ b/jf_relation/gadgets/test_utils/index.html @@ -1,3 +1,3 @@ -jf_relation::gadgets::test_utils - Rust

    Module jf_relation::gadgets::test_utils

    source ·
    Expand description

    Utils for test

    +jf_relation::gadgets::test_utils - Rust

    Module jf_relation::gadgets::test_utils

    source ·
    Expand description

    Utils for test

    Functions§

    \ No newline at end of file diff --git a/jf_relation/gadgets/trait.EmulationConfig.html b/jf_relation/gadgets/trait.EmulationConfig.html index d1870af1c..272cf37ae 100644 --- a/jf_relation/gadgets/trait.EmulationConfig.html +++ b/jf_relation/gadgets/trait.EmulationConfig.html @@ -1,9 +1,9 @@ -EmulationConfig in jf_relation::gadgets - Rust

    Trait jf_relation::gadgets::EmulationConfig

    source ·
    pub trait EmulationConfig<F: PrimeField>: PrimeField {
    -    const T: usize;
    -    const B: usize;
    -    const NUM_LIMBS: usize;
    +EmulationConfig in jf_relation::gadgets - Rust

    Trait jf_relation::gadgets::EmulationConfig

    source ·
    pub trait EmulationConfig<F: PrimeField>: PrimeField {
    +    const T: usize;
    +    const B: usize;
    +    const NUM_LIMBS: usize;
     }
    Expand description

    Parameters needed for emulating field operations over [PrimeField].

    -

    Required Associated Constants§

    source

    const T: usize

    Log2 of the other CRT modulus is 2^T.

    -
    source

    const B: usize

    Bit length of each limbs.

    -
    source

    const NUM_LIMBS: usize

    B * NUM_LIMBS should equals to T.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl EmulationConfig<Fp<MontBackend<FrConfig, 4>, 4>> for Fq

    source§

    const T: usize = 300usize

    source§

    const B: usize = 100usize

    source§

    const NUM_LIMBS: usize = 3usize

    source§

    impl EmulationConfig<Fp<MontBackend<FrConfig, 4>, 4>> for Fq

    source§

    const T: usize = 500usize

    source§

    const B: usize = 100usize

    source§

    const NUM_LIMBS: usize = 5usize

    Implementors§

    \ No newline at end of file +

    Required Associated Constants§

    source

    const T: usize

    Log2 of the other CRT modulus is 2^T.

    +
    source

    const B: usize

    Bit length of each limbs.

    +
    source

    const NUM_LIMBS: usize

    B * NUM_LIMBS should equals to T.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl EmulationConfig<Fp<MontBackend<FrConfig, 4>, 4>> for Fq

    source§

    const T: usize = 300usize

    source§

    const B: usize = 100usize

    source§

    const NUM_LIMBS: usize = 3usize

    source§

    impl EmulationConfig<Fp<MontBackend<FrConfig, 4>, 4>> for Fq

    source§

    const T: usize = 500usize

    source§

    const B: usize = 100usize

    source§

    const NUM_LIMBS: usize = 5usize

    Implementors§

    \ No newline at end of file diff --git a/jf_relation/gadgets/trait.SerializableEmulatedStruct.html b/jf_relation/gadgets/trait.SerializableEmulatedStruct.html index b058a085a..23b0d4cf8 100644 --- a/jf_relation/gadgets/trait.SerializableEmulatedStruct.html +++ b/jf_relation/gadgets/trait.SerializableEmulatedStruct.html @@ -1,8 +1,8 @@ -SerializableEmulatedStruct in jf_relation::gadgets - Rust
    pub trait SerializableEmulatedStruct<F: PrimeField> {
    +SerializableEmulatedStruct in jf_relation::gadgets - Rust
    pub trait SerializableEmulatedStruct<F: PrimeField> {
         // Required method
    -    fn serialize_to_native_elements(&self) -> Vec<F>;
    +    fn serialize_to_native_elements(&self) -> Vec<F>;
     }
    Expand description

    A struct that can be serialized into Vec of field elements.

    -

    Required Methods§

    source

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.

    +

    Required Methods§

    source

    fn serialize_to_native_elements(&self) -> Vec<F>

    Serialize into a Vec of field elements.

    Implementors§

    source§

    impl<E, F> SerializableEmulatedStruct<F> for SWPoint<E>
    where E: EmulationConfig<F>, F: PrimeField,

    source§

    impl<E, F> SerializableEmulatedStruct<F> for TEPoint<E>
    where diff --git a/jf_relation/gadgets/ultraplonk/index.html b/jf_relation/gadgets/ultraplonk/index.html index 799c5198f..c60019980 100644 --- a/jf_relation/gadgets/ultraplonk/index.html +++ b/jf_relation/gadgets/ultraplonk/index.html @@ -1,2 +1,2 @@ -jf_relation::gadgets::ultraplonk - Rust

    Module jf_relation::gadgets::ultraplonk

    source ·
    Expand description

    Implements ultra-plonk related circuits.

    +jf_relation::gadgets::ultraplonk - Rust

    Module jf_relation::gadgets::ultraplonk

    source ·
    Expand description

    Implements ultra-plonk related circuits.

    Modules§

    \ No newline at end of file diff --git a/jf_relation/gadgets/ultraplonk/mod_arith/index.html b/jf_relation/gadgets/ultraplonk/mod_arith/index.html index 898d6bab3..dc3c99da3 100644 --- a/jf_relation/gadgets/ultraplonk/mod_arith/index.html +++ b/jf_relation/gadgets/ultraplonk/mod_arith/index.html @@ -1,4 +1,4 @@ -jf_relation::gadgets::ultraplonk::mod_arith - Rust

    Module jf_relation::gadgets::ultraplonk::mod_arith

    source ·
    Expand description

    Modular arithmetic gates

    +jf_relation::gadgets::ultraplonk::mod_arith - Rust

    Module jf_relation::gadgets::ultraplonk::mod_arith

    source ·
    Expand description

    Modular arithmetic gates

    Structs§

    Create a FpElem struct from field element p and split parameter m, where m <= F::MODULUS_BIT_SIZE / 2

    source

    pub fn field_elem(&self) -> F

    Convert into a single field element.

    -
    source

    pub fn components(&self) -> (F, F)

    Expose the field element components

    -
    source

    pub fn param_m(&self) -> usize

    Expose the m parameter

    +
    source

    pub fn components(&self) -> (F, F)

    Expose the field element components

    +
    source

    pub fn param_m(&self) -> usize

    Expose the m parameter

    source

    pub fn two_power_m(&self) -> F

    Expose 2^m parameter

    -

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for FpElem<F>

    source§

    fn clone(&self) -> FpElem<F>

    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<F: Debug + PrimeField> Debug for FpElem<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + PrimeField> Default for FpElem<F>

    source§

    fn default() -> FpElem<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + PrimeField> PartialEq for FpElem<F>

    source§

    fn eq(&self, other: &FpElem<F>) -> 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<F: Copy + PrimeField> Copy for FpElem<F>

    source§

    impl<F: Eq + PrimeField> Eq for FpElem<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for FpElem<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for FpElem<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for FpElem<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for FpElem<F>

    §

    impl<F> Sync for FpElem<F>

    §

    impl<F> Unpin for FpElem<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for FpElem<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for FpElem<F>

    source§

    fn clone(&self) -> FpElem<F>

    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<F: Debug + PrimeField> Debug for FpElem<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + PrimeField> Default for FpElem<F>

    source§

    fn default() -> FpElem<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + PrimeField> PartialEq for FpElem<F>

    source§

    fn eq(&self, other: &FpElem<F>) -> 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<F: Copy + PrimeField> Copy for FpElem<F>

    source§

    impl<F: Eq + PrimeField> Eq for FpElem<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for FpElem<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for FpElem<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for FpElem<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for FpElem<F>

    §

    impl<F> Sync for FpElem<F>

    §

    impl<F> Unpin for FpElem<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for FpElem<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gadgets/ultraplonk/mod_arith/struct.FpElemVar.html b/jf_relation/gadgets/ultraplonk/mod_arith/struct.FpElemVar.html index 37811fae8..5e2ff6d30 100644 --- a/jf_relation/gadgets/ultraplonk/mod_arith/struct.FpElemVar.html +++ b/jf_relation/gadgets/ultraplonk/mod_arith/struct.FpElemVar.html @@ -1,13 +1,13 @@ -FpElemVar in jf_relation::gadgets::ultraplonk::mod_arith - Rust

    Struct jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar

    source ·
    pub struct FpElemVar<F: PrimeField> { /* private fields */ }
    Expand description

    Represent variable of an Fp element: +FpElemVar in jf_relation::gadgets::ultraplonk::mod_arith - Rust

    Struct jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar

    source ·
    pub struct FpElemVar<F: PrimeField> { /* private fields */ }
    Expand description

    Represent variable of an Fp element: elem = witness[vars.0] + 2^m * witness[vars.1] Warning: for performance reasons, when this struct is used, we will assume 2^m - two_power_m without checking.

    Implementations§

    source§

    impl<F: PrimeField> FpElemVar<F>

    source

    pub fn new_unchecked( cs: &mut PlonkCircuit<F>, var: Variable, - m: usize, - two_power_m: Option<F>, -) -> Result<Self, CircuitError>

    Create an FpElemVar from Fp element variable var and split parameter + m: usize, + two_power_m: Option<F>, +) -> Result<Self, CircuitError>

    Create an FpElemVar from Fp element variable var and split parameter m. Does not perform range checks on the resulting variables. To create an FpElemVar from a field element, consider to use new_from_field_element instead (which comes with @@ -15,73 +15,75 @@

    source

    pub fn convert_to_var( &self, cs: &mut PlonkCircuit<F>, -) -> Result<Variable, CircuitError>

    Convert into a single variable with value witness[vars.0] + 2^m * witness[vars.1]

    +) -> Result<Variable, CircuitError>

    Convert into a single variable with value witness[vars.0] + 2^m * witness[vars.1]

    source

    pub fn new_from_field_element( cs: &mut PlonkCircuit<F>, - f: &F, - m: usize, - two_power_m: Option<F>, -) -> Result<Self, CircuitError>

    Create an FpElemVar from field element and split parameter m. + f: &F, + m: usize, + two_power_m: Option<F>, +) -> Result<Self, CircuitError>

    Create an FpElemVar from field element and split parameter m. This function is built with range-check proofs. requires lookup table.

    source

    pub fn new_from_fp_elem( cs: &mut PlonkCircuit<F>, fp_elem: &FpElem<F>, - m: usize, - two_power_m: Option<F>, -) -> Result<Self, CircuitError>

    Create an FpElemVar from FpElem form field element . + m: usize, + two_power_m: Option<F>, +) -> Result<Self, CircuitError>

    Create an FpElemVar from FpElem form field element . This function is built with range-check proofs. requires lookup table.

    source

    pub fn witness_fp_elem( &self, cs: &PlonkCircuit<F>, -) -> Result<FpElem<F>, CircuitError>

    Get the witness in FpElem form from the variables

    -
    source

    pub fn witness(&self, cs: &PlonkCircuit<F>) -> Result<F, CircuitError>

    Get the witness from the variables

    +) -> Result<FpElem<F>, CircuitError>

    Get the witness in FpElem form from the variables

    +
    source

    pub fn witness(&self, cs: &PlonkCircuit<F>) -> Result<F, CircuitError>

    Get the witness from the variables

    source

    pub fn components(&self) -> (Variable, Variable)

    Expose the field element variables components

    -
    source

    pub fn param_m(&self) -> usize

    Expose the m parameter

    +
    source

    pub fn param_m(&self) -> usize

    Expose the m parameter

    source

    pub fn two_power_m(&self) -> F

    Expose 2^m parameter

    -
    source

    pub fn zero(cs: &PlonkCircuit<F>, m: usize, two_power_m: Option<F>) -> Self

    An FpElemVar that represents a 0

    -
    source

    pub fn one(cs: &PlonkCircuit<F>, m: usize, two_power_m: Option<F>) -> Self

    An FpElemVar that represents a 1

    +
    source

    pub fn zero(cs: &PlonkCircuit<F>, m: usize, two_power_m: Option<F>) -> Self

    An FpElemVar that represents a 0

    +
    source

    pub fn one(cs: &PlonkCircuit<F>, m: usize, two_power_m: Option<F>) -> Self

    An FpElemVar that represents a 1

    source

    pub fn enforce_equal( &self, circuit: &mut PlonkCircuit<F>, - other: &Self, -) -> Result<(), CircuitError>

    Enforce self == other.

    -

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for FpElemVar<F>

    source§

    fn clone(&self) -> FpElemVar<F>

    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<F: Debug + PrimeField> Debug for FpElemVar<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + PrimeField> Default for FpElemVar<F>

    source§

    fn default() -> FpElemVar<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + PrimeField> PartialEq for FpElemVar<F>

    source§

    fn eq(&self, other: &FpElemVar<F>) -> 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<F: Copy + PrimeField> Copy for FpElemVar<F>

    source§

    impl<F: Eq + PrimeField> Eq for FpElemVar<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for FpElemVar<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for FpElemVar<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for FpElemVar<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for FpElemVar<F>

    §

    impl<F> Sync for FpElemVar<F>

    §

    impl<F> Unpin for FpElemVar<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for FpElemVar<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + other: &Self, +) -> Result<(), CircuitError>

    Enforce self == other.

    +

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for FpElemVar<F>

    source§

    fn clone(&self) -> FpElemVar<F>

    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<F: Debug + PrimeField> Debug for FpElemVar<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + PrimeField> Default for FpElemVar<F>

    source§

    fn default() -> FpElemVar<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + PrimeField> PartialEq for FpElemVar<F>

    source§

    fn eq(&self, other: &FpElemVar<F>) -> 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<F: Copy + PrimeField> Copy for FpElemVar<F>

    source§

    impl<F: Eq + PrimeField> Eq for FpElemVar<F>

    source§

    impl<F: PrimeField> StructuralPartialEq for FpElemVar<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for FpElemVar<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for FpElemVar<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for FpElemVar<F>

    §

    impl<F> Sync for FpElemVar<F>

    §

    impl<F> Unpin for FpElemVar<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for FpElemVar<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/index.html b/jf_relation/gates/index.html index 89fa12bd9..3c92ac0ee 100644 --- a/jf_relation/gates/index.html +++ b/jf_relation/gates/index.html @@ -1,4 +1,4 @@ -jf_relation::gates - Rust

    Module jf_relation::gates

    source ·
    Expand description

    Module for various circuit gates.

    +jf_relation::gates - Rust

    Module jf_relation::gates

    source ·
    Expand description

    Module for various circuit gates.

    Structs§

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.BoolGate.html b/jf_relation/gates/struct.BoolGate.html index 458b32d63..cf6205e11 100644 --- a/jf_relation/gates/struct.BoolGate.html +++ b/jf_relation/gates/struct.BoolGate.html @@ -1,31 +1,32 @@ -BoolGate in jf_relation::gates - Rust

    Struct jf_relation::gates::BoolGate

    source ·
    pub struct BoolGate;
    Expand description

    A boolean gate, selectors identical to MultiplicationGate, achieve through +BoolGate in jf_relation::gates - Rust

    Struct jf_relation::gates::BoolGate

    source ·
    pub struct BoolGate;
    Expand description

    A boolean gate, selectors identical to MultiplicationGate, achieve through constraining a * a = a

    -

    Trait Implementations§

    source§

    impl Clone for BoolGate

    source§

    fn clone(&self) -> BoolGate

    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 BoolGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for BoolGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl Clone for BoolGate

    source§

    fn clone(&self) -> BoolGate

    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 BoolGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for BoolGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.CondSelectGate.html b/jf_relation/gates/struct.CondSelectGate.html index 88ba8145d..1b30ba33b 100644 --- a/jf_relation/gates/struct.CondSelectGate.html +++ b/jf_relation/gates/struct.CondSelectGate.html @@ -1,30 +1,31 @@ -CondSelectGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CondSelectGate

    source ·
    pub struct CondSelectGate;
    Expand description

    A gate for conditional selection

    -

    Trait Implementations§

    source§

    impl Clone for CondSelectGate

    source§

    fn clone(&self) -> CondSelectGate

    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<F> Gate<F> for CondSelectGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +CondSelectGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CondSelectGate

    source ·
    pub struct CondSelectGate;
    Expand description

    A gate for conditional selection

    +

    Trait Implementations§

    source§

    impl Clone for CondSelectGate

    source§

    fn clone(&self) -> CondSelectGate

    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<F> Gate<F> for CondSelectGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.ConstantAdditionGate.html b/jf_relation/gates/struct.ConstantAdditionGate.html index 90ff482e4..3f0c4b9d9 100644 --- a/jf_relation/gates/struct.ConstantAdditionGate.html +++ b/jf_relation/gates/struct.ConstantAdditionGate.html @@ -1,34 +1,35 @@ -ConstantAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantAdditionGate

    source ·
    pub struct ConstantAdditionGate<F: Field>(/* private fields */);
    Expand description

    Adding a variable by a constant.

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for ConstantAdditionGate<F>

    source§

    fn clone(&self) -> ConstantAdditionGate<F>

    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<F: Debug + Field> Debug for ConstantAdditionGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantAdditionGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantAdditionGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantAdditionGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for ConstantAdditionGate<F>

    §

    impl<F> Sync for ConstantAdditionGate<F>

    §

    impl<F> Unpin for ConstantAdditionGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for ConstantAdditionGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +ConstantAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantAdditionGate

    source ·
    pub struct ConstantAdditionGate<F: Field>(/* private fields */);
    Expand description

    Adding a variable by a constant.

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for ConstantAdditionGate<F>

    source§

    fn clone(&self) -> ConstantAdditionGate<F>

    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<F: Debug + Field> Debug for ConstantAdditionGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantAdditionGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantAdditionGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantAdditionGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for ConstantAdditionGate<F>

    §

    impl<F> Sync for ConstantAdditionGate<F>

    §

    impl<F> Unpin for ConstantAdditionGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for ConstantAdditionGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.ConstantGate.html b/jf_relation/gates/struct.ConstantGate.html index fb0159475..f68484b1b 100644 --- a/jf_relation/gates/struct.ConstantGate.html +++ b/jf_relation/gates/struct.ConstantGate.html @@ -1,34 +1,35 @@ -ConstantGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantGate

    source ·
    pub struct ConstantGate<F: Field>(/* private fields */);
    Expand description

    A constant gate

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for ConstantGate<F>

    source§

    fn clone(&self) -> ConstantGate<F>

    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<F: Debug + Field> Debug for ConstantGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for ConstantGate<F>

    §

    impl<F> Sync for ConstantGate<F>

    §

    impl<F> Unpin for ConstantGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for ConstantGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +ConstantGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantGate

    source ·
    pub struct ConstantGate<F: Field>(/* private fields */);
    Expand description

    A constant gate

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for ConstantGate<F>

    source§

    fn clone(&self) -> ConstantGate<F>

    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<F: Debug + Field> Debug for ConstantGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for ConstantGate<F>

    §

    impl<F> Sync for ConstantGate<F>

    §

    impl<F> Unpin for ConstantGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for ConstantGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.ConstantMultiplicationGate.html b/jf_relation/gates/struct.ConstantMultiplicationGate.html index 8a6336cc0..0f49efd3a 100644 --- a/jf_relation/gates/struct.ConstantMultiplicationGate.html +++ b/jf_relation/gates/struct.ConstantMultiplicationGate.html @@ -1,37 +1,38 @@ -ConstantMultiplicationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantMultiplicationGate

    source ·
    pub struct ConstantMultiplicationGate<F>(/* private fields */);
    Expand description

    A mul constant gate. +ConstantMultiplicationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::ConstantMultiplicationGate

    source ·
    pub struct ConstantMultiplicationGate<F>(/* private fields */);
    Expand description

    A mul constant gate. Multiply the first variable with the constant.

    -

    Trait Implementations§

    source§

    impl<F: Clone> Clone for ConstantMultiplicationGate<F>

    source§

    fn clone(&self) -> ConstantMultiplicationGate<F>

    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<F: Debug> Debug for ConstantMultiplicationGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantMultiplicationGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantMultiplicationGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantMultiplicationGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for ConstantMultiplicationGate<F>
    where - F: Send,

    §

    impl<F> Sync for ConstantMultiplicationGate<F>
    where - F: Sync,

    §

    impl<F> Unpin for ConstantMultiplicationGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for ConstantMultiplicationGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<F: Clone> Clone for ConstantMultiplicationGate<F>

    source§

    fn clone(&self) -> ConstantMultiplicationGate<F>

    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<F: Debug> Debug for ConstantMultiplicationGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for ConstantMultiplicationGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for ConstantMultiplicationGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for ConstantMultiplicationGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for ConstantMultiplicationGate<F>
    where + F: Send,

    §

    impl<F> Sync for ConstantMultiplicationGate<F>
    where + F: Sync,

    §

    impl<F> Unpin for ConstantMultiplicationGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for ConstantMultiplicationGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.CurvePointXAdditionGate.html b/jf_relation/gates/struct.CurvePointXAdditionGate.html index c25b68962..5fb45c880 100644 --- a/jf_relation/gates/struct.CurvePointXAdditionGate.html +++ b/jf_relation/gates/struct.CurvePointXAdditionGate.html @@ -1,35 +1,36 @@ -CurvePointXAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CurvePointXAdditionGate

    source ·
    pub struct CurvePointXAdditionGate<P: Config> { /* private fields */ }
    Expand description

    A gate for point addition on x-coordinate between two Curve Points

    -

    Trait Implementations§

    source§

    impl<P> Clone for CurvePointXAdditionGate<P>
    where - P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for CurvePointXAdditionGate<P>
    where +CurvePointXAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CurvePointXAdditionGate

    source ·
    pub struct CurvePointXAdditionGate<P: Config> { /* private fields */ }
    Expand description

    A gate for point addition on x-coordinate between two Curve Points

    +

    Trait Implementations§

    source§

    impl<P> Clone for CurvePointXAdditionGate<P>
    where + P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for CurvePointXAdditionGate<P>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.CurvePointYAdditionGate.html b/jf_relation/gates/struct.CurvePointYAdditionGate.html index 72c3e250e..c5b9f4896 100644 --- a/jf_relation/gates/struct.CurvePointYAdditionGate.html +++ b/jf_relation/gates/struct.CurvePointYAdditionGate.html @@ -1,35 +1,36 @@ -CurvePointYAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CurvePointYAdditionGate

    source ·
    pub struct CurvePointYAdditionGate<P: Config> { /* private fields */ }
    Expand description

    A gate for point addition on y-coordinate between two Curve Points

    -

    Trait Implementations§

    source§

    impl<P> Clone for CurvePointYAdditionGate<P>
    where - P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for CurvePointYAdditionGate<P>
    where +CurvePointYAdditionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::CurvePointYAdditionGate

    source ·
    pub struct CurvePointYAdditionGate<P: Config> { /* private fields */ }
    Expand description

    A gate for point addition on y-coordinate between two Curve Points

    +

    Trait Implementations§

    source§

    impl<P> Clone for CurvePointYAdditionGate<P>
    where + P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for CurvePointYAdditionGate<P>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.EdwardsCurveEquationGate.html b/jf_relation/gates/struct.EdwardsCurveEquationGate.html index 6112c5f47..77bdcd65b 100644 --- a/jf_relation/gates/struct.EdwardsCurveEquationGate.html +++ b/jf_relation/gates/struct.EdwardsCurveEquationGate.html @@ -1,35 +1,36 @@ -EdwardsCurveEquationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::EdwardsCurveEquationGate

    source ·
    pub struct EdwardsCurveEquationGate<P: Config> { /* private fields */ }
    Expand description

    A gate for checking a point conforming the twisted Edwards curve equation

    -

    Trait Implementations§

    source§

    impl<P> Clone for EdwardsCurveEquationGate<P>
    where - P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for EdwardsCurveEquationGate<P>
    where +EdwardsCurveEquationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::EdwardsCurveEquationGate

    source ·
    pub struct EdwardsCurveEquationGate<P: Config> { /* private fields */ }
    Expand description

    A gate for checking a point conforming the twisted Edwards curve equation

    +

    Trait Implementations§

    source§

    impl<P> Clone for EdwardsCurveEquationGate<P>
    where + P: Config,

    source§

    fn clone(&self) -> Self

    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<F, P> Gate<F> for EdwardsCurveEquationGate<P>
    where F: PrimeField, - P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + P: Config<BaseField = F>,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.EqualityGate.html b/jf_relation/gates/struct.EqualityGate.html index 55e6e18c9..2b17ca9d0 100644 --- a/jf_relation/gates/struct.EqualityGate.html +++ b/jf_relation/gates/struct.EqualityGate.html @@ -1,31 +1,32 @@ -EqualityGate in jf_relation::gates - Rust

    Struct jf_relation::gates::EqualityGate

    source ·
    pub struct EqualityGate;
    Expand description

    An equality gate, selectors identical to SubtractionGate, achieve through +EqualityGate in jf_relation::gates - Rust

    Struct jf_relation::gates::EqualityGate

    source ·
    pub struct EqualityGate;
    Expand description

    An equality gate, selectors identical to SubtractionGate, achieve through constraining a - b = 0

    -

    Trait Implementations§

    source§

    impl Clone for EqualityGate

    source§

    fn clone(&self) -> EqualityGate

    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 EqualityGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for EqualityGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl Clone for EqualityGate

    source§

    fn clone(&self) -> EqualityGate

    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 EqualityGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for EqualityGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.FifthRootGate.html b/jf_relation/gates/struct.FifthRootGate.html index 684e36b39..1f56d3365 100644 --- a/jf_relation/gates/struct.FifthRootGate.html +++ b/jf_relation/gates/struct.FifthRootGate.html @@ -1,29 +1,30 @@ -FifthRootGate in jf_relation::gates - Rust

    Struct jf_relation::gates::FifthRootGate

    source ·
    pub struct FifthRootGate;
    Expand description

    Gate for checking a value is the fifth root of another

    -

    Trait Implementations§

    source§

    impl Clone for FifthRootGate

    source§

    fn clone(&self) -> FifthRootGate

    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 FifthRootGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Field> Gate<F> for FifthRootGate

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +FifthRootGate in jf_relation::gates - Rust

    Struct jf_relation::gates::FifthRootGate

    source ·
    pub struct FifthRootGate;
    Expand description

    Gate for checking a value is the fifth root of another

    +

    Trait Implementations§

    source§

    impl Clone for FifthRootGate

    source§

    fn clone(&self) -> FifthRootGate

    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 FifthRootGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Field> Gate<F> for FifthRootGate

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.IoGate.html b/jf_relation/gates/struct.IoGate.html index 9b3c74838..1b7cc28e4 100644 --- a/jf_relation/gates/struct.IoGate.html +++ b/jf_relation/gates/struct.IoGate.html @@ -1,30 +1,31 @@ -IoGate in jf_relation::gates - Rust

    Struct jf_relation::gates::IoGate

    source ·
    pub struct IoGate;
    Expand description

    An I/O gate for public inputs

    -

    Trait Implementations§

    source§

    impl Clone for IoGate

    source§

    fn clone(&self) -> IoGate

    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 IoGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for IoGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl Freeze for IoGate

    §

    impl RefUnwindSafe for IoGate

    §

    impl Send for IoGate

    §

    impl Sync for IoGate

    §

    impl Unpin for IoGate

    §

    impl UnwindSafe for IoGate

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +IoGate in jf_relation::gates - Rust

    Struct jf_relation::gates::IoGate

    source ·
    pub struct IoGate;
    Expand description

    An I/O gate for public inputs

    +

    Trait Implementations§

    source§

    impl Clone for IoGate

    source§

    fn clone(&self) -> IoGate

    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 IoGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for IoGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl Freeze for IoGate

    §

    impl RefUnwindSafe for IoGate

    §

    impl Send for IoGate

    §

    impl Sync for IoGate

    §

    impl Unpin for IoGate

    §

    impl UnwindSafe for IoGate

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.LinCombGate.html b/jf_relation/gates/struct.LinCombGate.html index acb72f190..fa4e38751 100644 --- a/jf_relation/gates/struct.LinCombGate.html +++ b/jf_relation/gates/struct.LinCombGate.html @@ -1,34 +1,35 @@ -LinCombGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LinCombGate

    source ·
    pub struct LinCombGate<F: Field> { /* private fields */ }
    Expand description

    A linear combination gate

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for LinCombGate<F>

    source§

    fn clone(&self) -> LinCombGate<F>

    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<F> Gate<F> for LinCombGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for LinCombGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for LinCombGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for LinCombGate<F>

    §

    impl<F> Sync for LinCombGate<F>

    §

    impl<F> Unpin for LinCombGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for LinCombGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +LinCombGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LinCombGate

    source ·
    pub struct LinCombGate<F: Field> { /* private fields */ }
    Expand description

    A linear combination gate

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for LinCombGate<F>

    source§

    fn clone(&self) -> LinCombGate<F>

    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<F> Gate<F> for LinCombGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for LinCombGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for LinCombGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for LinCombGate<F>

    §

    impl<F> Sync for LinCombGate<F>

    §

    impl<F> Unpin for LinCombGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for LinCombGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.LogicOrGate.html b/jf_relation/gates/struct.LogicOrGate.html index fc69fd393..2623ef8c5 100644 --- a/jf_relation/gates/struct.LogicOrGate.html +++ b/jf_relation/gates/struct.LogicOrGate.html @@ -1,30 +1,31 @@ -LogicOrGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LogicOrGate

    source ·
    pub struct LogicOrGate;
    Expand description

    A gate for logic OR

    -

    Trait Implementations§

    source§

    impl Clone for LogicOrGate

    source§

    fn clone(&self) -> LogicOrGate

    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<F> Gate<F> for LogicOrGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +LogicOrGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LogicOrGate

    source ·
    pub struct LogicOrGate;
    Expand description

    A gate for logic OR

    +

    Trait Implementations§

    source§

    impl Clone for LogicOrGate

    source§

    fn clone(&self) -> LogicOrGate

    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<F> Gate<F> for LogicOrGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.LogicOrOutputGate.html b/jf_relation/gates/struct.LogicOrOutputGate.html index 8745d981d..26e025e61 100644 --- a/jf_relation/gates/struct.LogicOrOutputGate.html +++ b/jf_relation/gates/struct.LogicOrOutputGate.html @@ -1,30 +1,31 @@ -LogicOrOutputGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LogicOrOutputGate

    source ·
    pub struct LogicOrOutputGate;
    Expand description

    A gate for computing the logic OR value of 2 variables

    -

    Trait Implementations§

    source§

    impl Clone for LogicOrOutputGate

    source§

    fn clone(&self) -> LogicOrOutputGate

    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<F> Gate<F> for LogicOrOutputGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +LogicOrOutputGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LogicOrOutputGate

    source ·
    pub struct LogicOrOutputGate;
    Expand description

    A gate for computing the logic OR value of 2 variables

    +

    Trait Implementations§

    source§

    impl Clone for LogicOrOutputGate

    source§

    fn clone(&self) -> LogicOrOutputGate

    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<F> Gate<F> for LogicOrOutputGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.LookupGate.html b/jf_relation/gates/struct.LookupGate.html index aa82c463a..e99586449 100644 --- a/jf_relation/gates/struct.LookupGate.html +++ b/jf_relation/gates/struct.LookupGate.html @@ -1,34 +1,35 @@ -LookupGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LookupGate

    source ·
    pub struct LookupGate<F: Field> { /* private fields */ }
    Expand description

    An UltraPlonk lookup gate

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for LookupGate<F>

    source§

    fn clone(&self) -> LookupGate<F>

    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<F: Debug + Field> Debug for LookupGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for LookupGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.

    Auto Trait Implementations§

    §

    impl<F> Freeze for LookupGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for LookupGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for LookupGate<F>

    §

    impl<F> Sync for LookupGate<F>

    §

    impl<F> Unpin for LookupGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for LookupGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +LookupGate in jf_relation::gates - Rust

    Struct jf_relation::gates::LookupGate

    source ·
    pub struct LookupGate<F: Field> { /* private fields */ }
    Expand description

    An UltraPlonk lookup gate

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for LookupGate<F>

    source§

    fn clone(&self) -> LookupGate<F>

    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<F: Debug + Field> Debug for LookupGate<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for LookupGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.

    Auto Trait Implementations§

    §

    impl<F> Freeze for LookupGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for LookupGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for LookupGate<F>

    §

    impl<F> Sync for LookupGate<F>

    §

    impl<F> Unpin for LookupGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for LookupGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.MulAddGate.html b/jf_relation/gates/struct.MulAddGate.html index c4fb1c34b..81dc07f04 100644 --- a/jf_relation/gates/struct.MulAddGate.html +++ b/jf_relation/gates/struct.MulAddGate.html @@ -1,34 +1,35 @@ -MulAddGate in jf_relation::gates - Rust

    Struct jf_relation::gates::MulAddGate

    source ·
    pub struct MulAddGate<F: Field> { /* private fields */ }
    Expand description

    A multiplication-then-addition gate

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for MulAddGate<F>

    source§

    fn clone(&self) -> MulAddGate<F>

    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<F> Gate<F> for MulAddGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for MulAddGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for MulAddGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for MulAddGate<F>

    §

    impl<F> Sync for MulAddGate<F>

    §

    impl<F> Unpin for MulAddGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for MulAddGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +MulAddGate in jf_relation::gates - Rust

    Struct jf_relation::gates::MulAddGate

    source ·
    pub struct MulAddGate<F: Field> { /* private fields */ }
    Expand description

    A multiplication-then-addition gate

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for MulAddGate<F>

    source§

    fn clone(&self) -> MulAddGate<F>

    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<F> Gate<F> for MulAddGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for MulAddGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for MulAddGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for MulAddGate<F>

    §

    impl<F> Sync for MulAddGate<F>

    §

    impl<F> Unpin for MulAddGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for MulAddGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.MultiplicationGate.html b/jf_relation/gates/struct.MultiplicationGate.html index 91e9d32a4..dd41a85de 100644 --- a/jf_relation/gates/struct.MultiplicationGate.html +++ b/jf_relation/gates/struct.MultiplicationGate.html @@ -1,30 +1,31 @@ -MultiplicationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::MultiplicationGate

    source ·
    pub struct MultiplicationGate;
    Expand description

    A multiplication gate

    -

    Trait Implementations§

    source§

    impl Clone for MultiplicationGate

    source§

    fn clone(&self) -> MultiplicationGate

    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 MultiplicationGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for MultiplicationGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +MultiplicationGate in jf_relation::gates - Rust

    Struct jf_relation::gates::MultiplicationGate

    source ·
    pub struct MultiplicationGate;
    Expand description

    A multiplication gate

    +

    Trait Implementations§

    source§

    impl Clone for MultiplicationGate

    source§

    fn clone(&self) -> MultiplicationGate

    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 MultiplicationGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for MultiplicationGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.PaddingGate.html b/jf_relation/gates/struct.PaddingGate.html index 42106c472..9e15da4f2 100644 --- a/jf_relation/gates/struct.PaddingGate.html +++ b/jf_relation/gates/struct.PaddingGate.html @@ -1,30 +1,31 @@ -PaddingGate in jf_relation::gates - Rust

    Struct jf_relation::gates::PaddingGate

    source ·
    pub struct PaddingGate;
    Expand description

    A empty gate for circuit padding

    -

    Trait Implementations§

    source§

    impl Clone for PaddingGate

    source§

    fn clone(&self) -> PaddingGate

    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 PaddingGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for PaddingGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +PaddingGate in jf_relation::gates - Rust

    Struct jf_relation::gates::PaddingGate

    source ·
    pub struct PaddingGate;
    Expand description

    A empty gate for circuit padding

    +

    Trait Implementations§

    source§

    impl Clone for PaddingGate

    source§

    fn clone(&self) -> PaddingGate

    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 PaddingGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for PaddingGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.QuadPolyGate.html b/jf_relation/gates/struct.QuadPolyGate.html index 82070fa15..c7430ee17 100644 --- a/jf_relation/gates/struct.QuadPolyGate.html +++ b/jf_relation/gates/struct.QuadPolyGate.html @@ -1,34 +1,35 @@ -QuadPolyGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuadPolyGate

    source ·
    pub struct QuadPolyGate<F: Field> { /* private fields */ }
    Expand description

    A deg-2 polynomial gate

    -

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for QuadPolyGate<F>

    source§

    fn clone(&self) -> QuadPolyGate<F>

    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<F> Gate<F> for QuadPolyGate<F>
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for QuadPolyGate<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for QuadPolyGate<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for QuadPolyGate<F>

    §

    impl<F> Sync for QuadPolyGate<F>

    §

    impl<F> Unpin for QuadPolyGate<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for QuadPolyGate<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +QuadPolyGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuadPolyGate

    source ·
    pub struct QuadPolyGate<F: Field> { /* private fields */ }
    Expand description

    A deg-2 polynomial gate

    +

    Trait Implementations§

    source§

    impl<F: Clone + Field> Clone for QuadPolyGate<F>

    source§

    fn clone(&self) -> QuadPolyGate<F>

    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<F> Gate<F> for QuadPolyGate<F>
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    §

    impl<F> Freeze for QuadPolyGate<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for QuadPolyGate<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for QuadPolyGate<F>

    §

    impl<F> Sync for QuadPolyGate<F>

    §

    impl<F> Unpin for QuadPolyGate<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for QuadPolyGate<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.QuaternaryPointSelectXGate.html b/jf_relation/gates/struct.QuaternaryPointSelectXGate.html index 4e2f0dfb2..1b60b2086 100644 --- a/jf_relation/gates/struct.QuaternaryPointSelectXGate.html +++ b/jf_relation/gates/struct.QuaternaryPointSelectXGate.html @@ -1,36 +1,37 @@ -QuaternaryPointSelectXGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuaternaryPointSelectXGate

    source ·
    pub struct QuaternaryPointSelectXGate<F: PrimeField> { /* private fields */ }
    Expand description

    A point selection gate on x-coordinate for conditional selection among 4 +QuaternaryPointSelectXGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuaternaryPointSelectXGate

    source ·
    pub struct QuaternaryPointSelectXGate<F: PrimeField> { /* private fields */ }
    Expand description

    A point selection gate on x-coordinate for conditional selection among 4 point candidates P0 is default neutral point, P1, P2, P3 are public constants

    -

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectXGate<F>

    source§

    fn clone(&self) -> QuaternaryPointSelectXGate<F>

    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<F> Gate<F> for QuaternaryPointSelectXGate<F>
    where - F: PrimeField,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectXGate<F>

    source§

    fn clone(&self) -> QuaternaryPointSelectXGate<F>

    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<F> Gate<F> for QuaternaryPointSelectXGate<F>
    where + F: PrimeField,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.QuaternaryPointSelectYGate.html b/jf_relation/gates/struct.QuaternaryPointSelectYGate.html index db47e79b0..c357f8315 100644 --- a/jf_relation/gates/struct.QuaternaryPointSelectYGate.html +++ b/jf_relation/gates/struct.QuaternaryPointSelectYGate.html @@ -1,36 +1,37 @@ -QuaternaryPointSelectYGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuaternaryPointSelectYGate

    source ·
    pub struct QuaternaryPointSelectYGate<F: PrimeField> { /* private fields */ }
    Expand description

    A point selection gate on y-coordinate for conditional selection among 4 +QuaternaryPointSelectYGate in jf_relation::gates - Rust

    Struct jf_relation::gates::QuaternaryPointSelectYGate

    source ·
    pub struct QuaternaryPointSelectYGate<F: PrimeField> { /* private fields */ }
    Expand description

    A point selection gate on y-coordinate for conditional selection among 4 point candidates P0 is default neutral point, P1, P2, P3 are public constants

    -

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectYGate<F>

    source§

    fn clone(&self) -> QuaternaryPointSelectYGate<F>

    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<F> Gate<F> for QuaternaryPointSelectYGate<F>
    where - F: PrimeField,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectYGate<F>

    source§

    fn clone(&self) -> QuaternaryPointSelectYGate<F>

    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<F> Gate<F> for QuaternaryPointSelectYGate<F>
    where + F: PrimeField,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/struct.SubtractionGate.html b/jf_relation/gates/struct.SubtractionGate.html index e877f516f..6c4059135 100644 --- a/jf_relation/gates/struct.SubtractionGate.html +++ b/jf_relation/gates/struct.SubtractionGate.html @@ -1,30 +1,31 @@ -SubtractionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::SubtractionGate

    source ·
    pub struct SubtractionGate;
    Expand description

    A subtraction gate

    -

    Trait Implementations§

    source§

    impl Clone for SubtractionGate

    source§

    fn clone(&self) -> SubtractionGate

    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 SubtractionGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for SubtractionGate
    where - F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +SubtractionGate in jf_relation::gates - Rust

    Struct jf_relation::gates::SubtractionGate

    source ·
    pub struct SubtractionGate;
    Expand description

    A subtraction gate

    +

    Trait Implementations§

    source§

    impl Clone for SubtractionGate

    source§

    fn clone(&self) -> SubtractionGate

    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 SubtractionGate

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F> Gate<F> for SubtractionGate
    where + F: Field,

    source§

    fn name(&self) -> &'static str

    Get the name of a gate.
    source§

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.
    source§

    fn q_o(&self) -> F

    Output wire selector.
    source§

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.
    source§

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.
    source§

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.
    source§

    fn q_c(&self) -> F

    Constant selector.
    source§

    fn q_lookup(&self) -> F

    UltraPlonk lookup selector.
    source§

    fn q_dom_sep(&self) -> F

    UltraPlonk lookup domain separation selector.
    source§

    fn table_key(&self) -> F

    UltraPlonk table keys.
    source§

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_relation/gates/trait.Gate.html b/jf_relation/gates/trait.Gate.html index c703cf74c..d7c728a06 100644 --- a/jf_relation/gates/trait.Gate.html +++ b/jf_relation/gates/trait.Gate.html @@ -1,11 +1,11 @@ -Gate in jf_relation::gates - Rust

    Trait jf_relation::gates::Gate

    source ·
    pub trait Gate<F: Field>: Downcast + DynClone {
    +Gate in jf_relation::gates - Rust

    Trait jf_relation::gates::Gate

    source ·
    pub trait Gate<F: Field>: Downcast + DynClone {
         // Required method
    -    fn name(&self) -> &'static str;
    +    fn name(&self) -> &'static str;
     
         // Provided methods
    -    fn q_lc(&self) -> [F; 4] { ... }
    -    fn q_hash(&self) -> [F; 4] { ... }
    -    fn q_mul(&self) -> [F; 2] { ... }
    +    fn q_lc(&self) -> [F; 4] { ... }
    +    fn q_hash(&self) -> [F; 4] { ... }
    +    fn q_mul(&self) -> [F; 2] { ... }
         fn q_ecc(&self) -> F { ... }
         fn q_c(&self) -> F { ... }
         fn q_o(&self) -> F { ... }
    @@ -14,10 +14,10 @@
         fn table_key(&self) -> F { ... }
         fn table_dom_sep(&self) -> F { ... }
     }
    Expand description

    Describes a gate with getter for all selectors configuration

    -

    Required Methods§

    source

    fn name(&self) -> &'static str

    Get the name of a gate.

    -

    Provided Methods§

    source

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.

    -
    source

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.

    -
    source

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.

    +

    Required Methods§

    source

    fn name(&self) -> &'static str

    Get the name of a gate.

    +

    Provided Methods§

    source

    fn q_lc(&self) -> [F; 4]

    Selectors for linear combination.

    +
    source

    fn q_hash(&self) -> [F; 4]

    Selectors for Rescue hashes.

    +
    source

    fn q_mul(&self) -> [F; 2]

    Selectors for multiplication.

    source

    fn q_ecc(&self) -> F

    The selector for elliptic curve operation.

    source

    fn q_c(&self) -> F

    Constant selector.

    source

    fn q_o(&self) -> F

    Output wire selector.

    @@ -26,16 +26,16 @@
    source

    fn table_key(&self) -> F

    UltraPlonk table keys.

    source

    fn table_dom_sep(&self) -> F

    UltraPlonk table domain separation ids

    Implementations§

    source§

    impl<F> dyn Gate<F>
    where - F: Any + 'static + Field,

    source

    pub fn is<__T: Gate<F>>(&self) -> bool

    Returns true if the trait object wraps an object of type __T.

    -
    source

    pub fn downcast<__T: Gate<F>>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>

    Returns a boxed object from a boxed trait object if the underlying object is of type + F: Any + 'static + Field,

    source

    pub fn is<__T: Gate<F>>(&self) -> bool

    Returns true if the trait object wraps an object of type __T.

    +
    source

    pub fn downcast<__T: Gate<F>>(self: Box<Self>) -> Result<Box<__T>, Box<Self>>

    Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

    -
    source

    pub fn downcast_rc<__T: Gate<F>>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>

    Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of +

    source

    pub fn downcast_rc<__T: Gate<F>>(self: Rc<Self>) -> Result<Rc<__T>, Rc<Self>>

    Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

    -
    source

    pub fn downcast_ref<__T: Gate<F>>(&self) -> Option<&__T>

    Returns a reference to the object within the trait object if it is of type __T, or +

    source

    pub fn downcast_ref<__T: Gate<F>>(&self) -> Option<&__T>

    Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

    -
    source

    pub fn downcast_mut<__T: Gate<F>>(&mut self) -> Option<&mut __T>

    Returns a mutable reference to the object within the trait object if it is of type +

    source

    pub fn downcast_mut<__T: Gate<F>>(&mut self) -> Option<&mut __T>

    Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

    -

    Trait Implementations§

    source§

    impl<F: Field> Clone for Box<dyn Gate<F>>

    source§

    fn clone(&self) -> Box<dyn Gate<F>>

    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<F: Field> Debug for dyn Gate<F> + 'static

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Implementors§

    source§

    impl<F> Gate<F> for AdditionGate
    where +

    Trait Implementations§

    source§

    impl<F: Field> Clone for Box<dyn Gate<F>>

    source§

    fn clone(&self) -> Box<dyn Gate<F>>

    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<F: Field> Debug for dyn Gate<F> + 'static

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Implementors§

    source§

    impl<F> Gate<F> for AdditionGate
    where F: Field,

    source§

    impl<F> Gate<F> for BoolGate
    where F: Field,

    source§

    impl<F> Gate<F> for CondSelectGate
    where F: Field,

    source§

    impl<F> Gate<F> for ConstantAdditionGate<F>
    where diff --git a/jf_relation/index.html b/jf_relation/index.html index cd2892ea5..9ef8713dc 100644 --- a/jf_relation/index.html +++ b/jf_relation/index.html @@ -1,2 +1,2 @@ -jf_relation - Rust

    Crate jf_relation

    source ·
    Expand description

    Interfaces for Plonk-based constraint systems

    +jf_relation - Rust

    Crate jf_relation

    source ·
    Expand description

    Interfaces for Plonk-based constraint systems

    Re-exports§

    Modules§

    Enums§

    • A enum specifying the possible failure modes of the circuit.
    \ No newline at end of file diff --git a/jf_rescue/all.html b/jf_rescue/all.html index 57e9392b7..26175ee18 100644 --- a/jf_rescue/all.html +++ b/jf_rescue/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/jf_rescue/commitment/index.html b/jf_rescue/commitment/index.html index 1db3cfe4e..722100213 100644 --- a/jf_rescue/commitment/index.html +++ b/jf_rescue/commitment/index.html @@ -1,2 +1,2 @@ -jf_rescue::commitment - Rust

    Module jf_rescue::commitment

    source ·
    Expand description

    Implements a rescue hash based commitment scheme.

    +jf_rescue::commitment - Rust

    Module jf_rescue::commitment

    source ·
    Expand description

    Implements a rescue hash based commitment scheme.

    Structs§

    \ No newline at end of file diff --git a/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html b/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html index c6c79348a..b5ab870b6 100644 --- a/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html +++ b/jf_rescue/commitment/struct.FixedLengthRescueCommitment.html @@ -1,42 +1,43 @@ -FixedLengthRescueCommitment in jf_rescue::commitment - Rust
    pub struct FixedLengthRescueCommitment<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize>(/* private fields */);
    Expand description

    Rescue-based Commitment instance for fixed-length input

    +FixedLengthRescueCommitment in jf_rescue::commitment - Rust
    pub struct FixedLengthRescueCommitment<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize>(/* private fields */);
    Expand description

    Rescue-based Commitment instance for fixed-length input

    §Note

    the current ugly existence of INPUT_LEN_PLUS_ONE is due to unstable feature of using const generic in expression (namely can’t use INPUT_LEN + 1 in code).

    -

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn clone(&self) -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    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<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    type Input = [F; INPUT_LEN]

    Input to the commitment
    §

    type Output = F

    The type of output commitment value
    §

    type Randomness = F

    The type of the hiding/blinding factor
    §

    type Error = RescueError

    Error type
    source§

    fn commit<T: Borrow<Self::Input>>( +

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn clone(&self) -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    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<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    type Input = [F; INPUT_LEN]

    Input to the commitment
    §

    type Output = F

    The type of output commitment value
    §

    type Randomness = F

    The type of the hiding/blinding factor
    §

    type Error = RescueError

    Error type
    source§

    fn commit<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, -) -> Result<Self::Output, Self::Error>

    Commit algorithm that takes input and blinding randomness r -(optional for hiding commitment schemes), outputs a commitment.
    source§

    fn verify<T: Borrow<Self::Input>>( + r: Option<&Self::Randomness>, +) -> Result<Self::Output, Self::Error>

    Commit algorithm that takes input and blinding randomness r +(optional for hiding commitment schemes), outputs a commitment.
    source§

    fn verify<T: Borrow<Self::Input>>( input: T, - r: Option<&Self::Randomness>, + r: Option<&Self::Randomness>, comm: &Self::Output, -) -> Result<Result<(), ()>, Self::Error>

    Verify algorithm that output Ok if accepted, or Err if rejected.
    source§

    impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn default() -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn eq( +) -> Result<Result<(), ()>, Self::Error>

    Verify algorithm that output Ok if accepted, or Err if rejected.
    source§

    impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn default() -> FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    Returns the “default value” for a type. Read more
    source§

    impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    fn eq( &self, other: &FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>, -) -> 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<F: Eq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Eq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> StructuralPartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    Auto Trait Implementations§

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Freeze for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> RefUnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where - F: RefUnwindSafe,

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Send for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Sync for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Unpin for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where - F: Unpin,

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> UnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +) -> 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<F: Eq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Eq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    source§

    impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> StructuralPartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    Auto Trait Implementations§

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Freeze for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> RefUnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where + F: RefUnwindSafe,

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Send for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Sync for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Unpin for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where + F: Unpin,

    §

    impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> UnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/constant.CRHF_RATE.html b/jf_rescue/constant.CRHF_RATE.html index c59770bbe..1a5a1622f 100644 --- a/jf_rescue/constant.CRHF_RATE.html +++ b/jf_rescue/constant.CRHF_RATE.html @@ -1,2 +1,2 @@ -CRHF_RATE in jf_rescue - Rust

    Constant jf_rescue::CRHF_RATE

    source ·
    pub const CRHF_RATE: usize = 3;
    Expand description

    The rate of the sponge used in RescueCRHF.

    +CRHF_RATE in jf_rescue - Rust

    Constant jf_rescue::CRHF_RATE

    source ·
    pub const CRHF_RATE: usize = 3;
    Expand description

    The rate of the sponge used in RescueCRHF.

    \ No newline at end of file diff --git a/jf_rescue/constant.ROUNDS.html b/jf_rescue/constant.ROUNDS.html index d0612a528..58593f6ee 100644 --- a/jf_rescue/constant.ROUNDS.html +++ b/jf_rescue/constant.ROUNDS.html @@ -1,2 +1,2 @@ -ROUNDS in jf_rescue - Rust

    Constant jf_rescue::ROUNDS

    source ·
    pub const ROUNDS: usize = 12;
    Expand description

    The # of rounds of rescue hash.

    +ROUNDS in jf_rescue - Rust

    Constant jf_rescue::ROUNDS

    source ·
    pub const ROUNDS: usize = 12;
    Expand description

    The # of rounds of rescue hash.

    \ No newline at end of file diff --git a/jf_rescue/constant.STATE_SIZE.html b/jf_rescue/constant.STATE_SIZE.html index 2e0810ba5..67df3cf8c 100644 --- a/jf_rescue/constant.STATE_SIZE.html +++ b/jf_rescue/constant.STATE_SIZE.html @@ -1,2 +1,2 @@ -STATE_SIZE in jf_rescue - Rust

    Constant jf_rescue::STATE_SIZE

    source ·
    pub const STATE_SIZE: usize = 4;
    Expand description

    The state size of rescue hash.

    +STATE_SIZE in jf_rescue - Rust

    Constant jf_rescue::STATE_SIZE

    source ·
    pub const STATE_SIZE: usize = 4;
    Expand description

    The state size of rescue hash.

    \ No newline at end of file diff --git a/jf_rescue/crhf/index.html b/jf_rescue/crhf/index.html index b5d62b782..ef1141931 100644 --- a/jf_rescue/crhf/index.html +++ b/jf_rescue/crhf/index.html @@ -1,3 +1,3 @@ -jf_rescue::crhf - Rust

    Module jf_rescue::crhf

    source ·
    Expand description

    A rescue CRHF implementation

    +jf_rescue::crhf - Rust

    Module jf_rescue::crhf

    source ·
    Expand description

    A rescue CRHF implementation

    Structs§

    \ No newline at end of file diff --git a/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html b/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html index 5d227471c..6127d5ed0 100644 --- a/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html +++ b/jf_rescue/crhf/struct.FixedLengthRescueCRHF.html @@ -1,31 +1,32 @@ -FixedLengthRescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::FixedLengthRescueCRHF

    source ·
    pub struct FixedLengthRescueCRHF<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize>(/* private fields */);
    Expand description

    A rescue-sponge-based CRHF with fixed-input size (if not multiple of 3 will +FixedLengthRescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::FixedLengthRescueCRHF

    source ·
    pub struct FixedLengthRescueCRHF<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize>(/* private fields */);
    Expand description

    A rescue-sponge-based CRHF with fixed-input size (if not multiple of 3 will get auto-padded) and variable-output size

    -

    Trait Implementations§

    source§

    impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn evaluate<T: Borrow<Self::Input>>( +

    Trait Implementations§

    source§

    impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn evaluate<T: Borrow<Self::Input>>( input: T, -) -> Result<Self::Output, Self::Error>

    §Padding
    +) -> Result<Self::Output, Self::Error>
    §Padding

    if input length is not a multiple of CRHF_RATE, then it will be padded. By default, we use “zero padding”-style where as many “0” as required are added.

    -
    §

    type Input = [F; INPUT_LEN]

    Input to the CRHF
    §

    type Output = [F; OUTPUT_LEN]

    Output of the CRHF
    §

    type Error = RescueError

    Error type
    source§

    impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn clone(&self) -> FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where - F: RefUnwindSafe,

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where - F: Unpin,

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §

    type Input = [F; INPUT_LEN]

    Input to the CRHF
    §

    type Output = [F; OUTPUT_LEN]

    Output of the CRHF
    §

    type Error = RescueError

    Error type
    source§

    impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn clone(&self) -> FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    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<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where + F: RefUnwindSafe,

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where + F: Unpin,

    §

    impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/crhf/struct.RescueCRHF.html b/jf_rescue/crhf/struct.RescueCRHF.html index c0fe79845..5863a80a5 100644 --- a/jf_rescue/crhf/struct.RescueCRHF.html +++ b/jf_rescue/crhf/struct.RescueCRHF.html @@ -1,40 +1,41 @@ -RescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::RescueCRHF

    source ·
    pub struct RescueCRHF<F: RescueParameter> { /* private fields */ }
    Expand description

    CRHF

    -

    Implementations§

    source§

    impl<F: RescueParameter> RescueCRHF<F>

    source

    pub fn sponge_with_bit_padding(input: &[F], num_outputs: usize) -> Vec<F>

    Sponge hashing based on rescue permutation for RATE 3. It allows +RescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::RescueCRHF

    source ·
    pub struct RescueCRHF<F: RescueParameter> { /* private fields */ }
    Expand description

    CRHF

    +

    Implementations§

    source§

    impl<F: RescueParameter> RescueCRHF<F>

    source

    pub fn sponge_with_bit_padding(input: &[F], num_outputs: usize) -> Vec<F>

    Sponge hashing based on rescue permutation for RATE 3. It allows unrestricted variable length input and returns a vector of num_outputs elements.

    we use “bit padding”-style where “1” is always appended, then as many “0” as required are added for the overall length to be a multiple of RATE

    -
    source

    pub fn sponge_with_zero_padding(input: &[F], num_outputs: usize) -> Vec<F>

    source

    pub fn sponge_with_zero_padding(input: &[F], num_outputs: usize) -> Vec<F>

    Similar to RescueCRHF::sponge_with_bit_padding except we use “zero padding” where as many “0” as required are added for the overall length to be a multiple of RATE.

    source

    pub fn sponge_no_padding( - input: &[F], - num_output: usize, -) -> Result<Vec<F>, RescueError>

    Sponge hashing based on rescue permutation for RATE 3 and CAPACITY 1. It + input: &[F], + num_output: usize, +) -> Result<Vec<F>, RescueError>

    Sponge hashing based on rescue permutation for RATE 3 and CAPACITY 1. It allows inputs with length that is a multiple of CRHF_RATE and returns a vector of num_outputs elements.

    -

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter> Clone for RescueCRHF<F>

    source§

    fn clone(&self) -> RescueCRHF<F>

    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<F: Debug + RescueParameter> Debug for RescueCRHF<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueCRHF<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueCRHF<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for RescueCRHF<F>

    §

    impl<F> Sync for RescueCRHF<F>

    §

    impl<F> Unpin for RescueCRHF<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for RescueCRHF<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter> Clone for RescueCRHF<F>

    source§

    fn clone(&self) -> RescueCRHF<F>

    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<F: Debug + RescueParameter> Debug for RescueCRHF<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueCRHF<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueCRHF<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for RescueCRHF<F>

    §

    impl<F> Sync for RescueCRHF<F>

    §

    impl<F> Unpin for RescueCRHF<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for RescueCRHF<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html b/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html index a862e178a..54bf2765f 100644 --- a/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html +++ b/jf_rescue/crhf/struct.VariableLengthRescueCRHF.html @@ -1,31 +1,32 @@ -VariableLengthRescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::VariableLengthRescueCRHF

    source ·
    pub struct VariableLengthRescueCRHF<F: RescueParameter, const OUTPUT_LEN: usize>(/* private fields */);
    Expand description

    A rescue-sponge-based CRHF with variable-input and variable-output size

    -

    Trait Implementations§

    source§

    impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn evaluate<T: Borrow<Self::Input>>( +VariableLengthRescueCRHF in jf_rescue::crhf - Rust

    Struct jf_rescue::crhf::VariableLengthRescueCRHF

    source ·
    pub struct VariableLengthRescueCRHF<F: RescueParameter, const OUTPUT_LEN: usize>(/* private fields */);
    Expand description

    A rescue-sponge-based CRHF with variable-input and variable-output size

    +

    Trait Implementations§

    source§

    impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn evaluate<T: Borrow<Self::Input>>( input: T, -) -> Result<Self::Output, Self::Error>

    §Padding
    +) -> Result<Self::Output, Self::Error>

    §Padding

    if input length is not a multiple of CRHF_RATE, then it will be padded. By default, we use “bit padding”-style where “1” is always appended, then as many “0” as required are added for the overall length to be a multiple of CRHF_RATE.

    -
    §

    type Input = Vec<F>

    Input to the CRHF
    §

    type Output = [F; OUTPUT_LEN]

    Output of the CRHF
    §

    type Error = RescueError

    Error type
    source§

    impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn clone(&self) -> VariableLengthRescueCRHF<F, OUTPUT_LEN>

    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<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where - F: RefUnwindSafe,

    §

    impl<F, const OUTPUT_LEN: usize> Send for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> Sync for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> Unpin for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where - F: Unpin,

    §

    impl<F, const OUTPUT_LEN: usize> UnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    §

    type Input = Vec<F>

    Input to the CRHF
    §

    type Output = [F; OUTPUT_LEN]

    Output of the CRHF
    §

    type Error = RescueError

    Error type
    source§

    impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn clone(&self) -> VariableLengthRescueCRHF<F, OUTPUT_LEN>

    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<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    §

    impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where + F: RefUnwindSafe,

    §

    impl<F, const OUTPUT_LEN: usize> Send for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> Sync for VariableLengthRescueCRHF<F, OUTPUT_LEN>

    §

    impl<F, const OUTPUT_LEN: usize> Unpin for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where + F: Unpin,

    §

    impl<F, const OUTPUT_LEN: usize> UnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/enum.RescueError.html b/jf_rescue/enum.RescueError.html index ffaea1860..037f9cbcf 100644 --- a/jf_rescue/enum.RescueError.html +++ b/jf_rescue/enum.RescueError.html @@ -1,31 +1,31 @@ -RescueError in jf_rescue - Rust

    Enum jf_rescue::RescueError

    source ·
    pub enum RescueError {
    -    ParameterError(String),
    +RescueError in jf_rescue - Rust

    Enum jf_rescue::RescueError

    source ·
    pub enum RescueError {
    +    ParameterError(String),
     }
    Expand description

    Rescue error type

    -

    Variants§

    §

    ParameterError(String)

    Bad parameter in function call, {0}

    -

    Trait Implementations§

    source§

    impl Debug for RescueError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for RescueError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for RescueError

    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 PartialEq for RescueError

    source§

    fn eq(&self, other: &RescueError) -> 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 RescueError

    source§

    impl StructuralPartialEq for RescueError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where - T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method +

    Variants§

    §

    ParameterError(String)

    Bad parameter in function call, {0}

    +

    Trait Implementations§

    source§

    impl Debug for RescueError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for RescueError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for RescueError

    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 PartialEq for RescueError

    source§

    fn eq(&self, other: &RescueError) -> 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 RescueError

    source§

    impl StructuralPartialEq for RescueError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where + T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +receivers.
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/index.html b/jf_rescue/index.html index 51ea80af5..3e1ae81a5 100644 --- a/jf_rescue/index.html +++ b/jf_rescue/index.html @@ -1,4 +1,4 @@ -jf_rescue - Rust

    Crate jf_rescue

    source ·
    Expand description

    This module implements Rescue hash function over the following fields

    +jf_rescue - Rust

    Crate jf_rescue

    source ·
    Expand description

    This module implements Rescue hash function over the following fields

    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/sponge/index.html b/jf_rescue/sponge/index.html index 47f411ecf..b5edfeddb 100644 --- a/jf_rescue/sponge/index.html +++ b/jf_rescue/sponge/index.html @@ -1,3 +1,3 @@ -jf_rescue::sponge - Rust

    Module jf_rescue::sponge

    source ·
    Expand description

    This file contains the APIs wrappers for ark-sponge

    +jf_rescue::sponge - Rust

    Module jf_rescue::sponge

    source ·
    Expand description

    This file contains the APIs wrappers for ark-sponge

    Structs§

    • A rescue hash function consists of a permutation function and an internal state.
    \ No newline at end of file diff --git a/jf_rescue/sponge/struct.RescueSponge.html b/jf_rescue/sponge/struct.RescueSponge.html index 0da11694b..80227eb0a 100644 --- a/jf_rescue/sponge/struct.RescueSponge.html +++ b/jf_rescue/sponge/struct.RescueSponge.html @@ -1,54 +1,55 @@ -RescueSponge in jf_rescue::sponge - Rust

    Struct jf_rescue::sponge::RescueSponge

    source ·
    pub struct RescueSponge<F: RescueParameter, const RATE: usize> { /* private fields */ }
    Expand description

    A rescue hash function consists of a permutation function and +RescueSponge in jf_rescue::sponge - Rust

    Struct jf_rescue::sponge::RescueSponge

    source ·
    pub struct RescueSponge<F: RescueParameter, const RATE: usize> { /* private fields */ }
    Expand description

    A rescue hash function consists of a permutation function and an internal state.

    -

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter, const RATE: usize> Clone for RescueSponge<F, RATE>

    source§

    fn clone(&self) -> RescueSponge<F, RATE>

    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<T: RescueParameter + PrimeField, const RATE: usize> CryptographicSponge for RescueSponge<T, RATE>

    §

    type Config = Permutation<T>

    Config used by the sponge.

    +

    Trait Implementations§

    source§

    impl<F: Clone + RescueParameter, const RATE: usize> Clone for RescueSponge<F, RATE>

    source§

    fn clone(&self) -> RescueSponge<F, RATE>

    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<T: RescueParameter + PrimeField, const RATE: usize> CryptographicSponge for RescueSponge<T, RATE>

    §

    type Config = Permutation<T>

    Config used by the sponge.

    source§

    fn new(permutation: &Self::Config) -> Self

    Initialize a new instance of the sponge.

    source§

    fn absorb(&mut self, input: &impl Absorb)

    Absorb an input into the sponge. This function will absorb the entire input, in chunks of RATE, even if the input length is not a multiple of RATE.

    -
    source§

    fn squeeze_bytes(&mut self, _num_bytes: usize) -> Vec<u8>

    WARNING! This trait method is unimplemented and should not be used. +

    source§

    fn squeeze_bytes(&mut self, _num_bytes: usize) -> Vec<u8>

    WARNING! This trait method is unimplemented and should not be used. Only use the CryptographicSponge for squeezing native field elements.

    -
    source§

    fn squeeze_bits(&mut self, _num_bits: usize) -> Vec<bool>

    WARNING! This trait method is unimplemented and should not be used. +

    source§

    fn squeeze_bits(&mut self, _num_bits: usize) -> Vec<bool>

    WARNING! This trait method is unimplemented and should not be used. Only use the CryptographicSponge for squeezing native field elements.

    source§

    fn squeeze_field_elements_with_sizes<F: PrimeField>( &mut self, _sizes: &[FieldElementSize], -) -> Vec<F>

    WARNING! This trait method is unimplemented and should not be used. +) -> Vec<F>

    WARNING! This trait method is unimplemented and should not be used. Use squeeze_native_field_elements instead.

    source§

    fn squeeze_field_elements<F: PrimeField>( &mut self, - _num_elements: usize, -) -> Vec<F>

    WARNING! This trait method is unimplemented and should not be used. + _num_elements: usize, +) -> Vec<F>

    WARNING! This trait method is unimplemented and should not be used. Use squeeze_native_field_elements instead.

    -
    source§

    fn fork(&self, domain: &[u8]) -> Self

    Creates a new sponge with applied domain separation.

    -
    source§

    impl<F: Debug + RescueParameter, const RATE: usize> Debug for RescueSponge<F, RATE>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + RescueParameter, const RATE: usize> Default for RescueSponge<F, RATE>

    source§

    fn default() -> RescueSponge<F, RATE>

    Returns the “default value” for a type. Read more
    source§

    impl<T: RescueParameter, const RATE: usize> FieldBasedCryptographicSponge<T> for RescueSponge<T, RATE>

    The interface for field-based cryptographic sponge. +

    source§

    fn fork(&self, domain: &[u8]) -> Self

    Creates a new sponge with applied domain separation.

    +
    source§

    impl<F: Debug + RescueParameter, const RATE: usize> Debug for RescueSponge<F, RATE>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + RescueParameter, const RATE: usize> Default for RescueSponge<F, RATE>

    source§

    fn default() -> RescueSponge<F, RATE>

    Returns the “default value” for a type. Read more
    source§

    impl<T: RescueParameter, const RATE: usize> FieldBasedCryptographicSponge<T> for RescueSponge<T, RATE>

    The interface for field-based cryptographic sponge. T is the native field used by the cryptographic sponge implementation.

    -
    source§

    fn squeeze_native_field_elements(&mut self, num_elements: usize) -> Vec<T>

    Squeeze num_elements field elements from the sponge.

    +
    source§

    fn squeeze_native_field_elements(&mut self, num_elements: usize) -> Vec<T>

    Squeeze num_elements field elements from the sponge.

    source§

    fn squeeze_native_field_elements_with_sizes( &mut self, _sizes: &[FieldElementSize], -) -> Vec<T>

    WARNING! This trait method is unimplemented and should not be used. +) -> Vec<T>

    WARNING! This trait method is unimplemented and should not be used. Use squeeze_native_field_elements instead.

    -
    source§

    impl<F: RescueParameter, const RATE: usize> SpongeExt for RescueSponge<F, RATE>

    §

    type State = RescueVector<F>

    The full state of the cryptographic sponge.
    source§

    fn from_state(state: Self::State, permutation: &Self::Config) -> Self

    Returns a sponge that uses state.
    source§

    fn into_state(self) -> Self::State

    Consumes self and returns the state.

    Auto Trait Implementations§

    §

    impl<F, const RATE: usize> Freeze for RescueSponge<F, RATE>
    where - F: Freeze,

    §

    impl<F, const RATE: usize> RefUnwindSafe for RescueSponge<F, RATE>
    where - F: RefUnwindSafe,

    §

    impl<F, const RATE: usize> Send for RescueSponge<F, RATE>

    §

    impl<F, const RATE: usize> Sync for RescueSponge<F, RATE>

    §

    impl<F, const RATE: usize> Unpin for RescueSponge<F, RATE>
    where - F: Unpin,

    §

    impl<F, const RATE: usize> UnwindSafe for RescueSponge<F, RATE>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    source§

    impl<F: RescueParameter, const RATE: usize> SpongeExt for RescueSponge<F, RATE>

    §

    type State = RescueVector<F>

    The full state of the cryptographic sponge.
    source§

    fn from_state(state: Self::State, permutation: &Self::Config) -> Self

    Returns a sponge that uses state.
    source§

    fn into_state(self) -> Self::State

    Consumes self and returns the state.

    Auto Trait Implementations§

    §

    impl<F, const RATE: usize> Freeze for RescueSponge<F, RATE>
    where + F: Freeze,

    §

    impl<F, const RATE: usize> RefUnwindSafe for RescueSponge<F, RATE>
    where + F: RefUnwindSafe,

    §

    impl<F, const RATE: usize> Send for RescueSponge<F, RATE>

    §

    impl<F, const RATE: usize> Sync for RescueSponge<F, RATE>

    §

    impl<F, const RATE: usize> Unpin for RescueSponge<F, RATE>
    where + F: Unpin,

    §

    impl<F, const RATE: usize> UnwindSafe for RescueSponge<F, RATE>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/struct.PRP.html b/jf_rescue/struct.PRP.html index 6cd4bc80d..d8f4d3020 100644 --- a/jf_rescue/struct.PRP.html +++ b/jf_rescue/struct.PRP.html @@ -1,4 +1,4 @@ -PRP in jf_rescue - Rust

    Struct jf_rescue::PRP

    source ·
    pub struct PRP<F> { /* private fields */ }
    Expand description

    Rescue pseudo-random permutation (PRP) instance

    +PRP in jf_rescue - Rust

    Struct jf_rescue::PRP

    source ·
    pub struct PRP<F> { /* private fields */ }
    Expand description

    Rescue pseudo-random permutation (PRP) instance

    Implementations§

    source§

    impl<F: RescueParameter> PRP<F>

    source

    pub fn prp( &self, key: &RescueVector<F>, @@ -11,7 +11,7 @@ input: &RescueVector<F>, ) -> RescueVector<F>

    Rescue pseudorandom permutation for Bls12381 scalars vectors of size 4 using scheduled keys

    -
    source

    pub fn key_schedule(&self, key: &RescueVector<F>) -> Vec<RescueVector<F>>

    Key scheduling for rescue based PRP for Bls12_381 scalars vector of size +

    source

    pub fn key_schedule(&self, key: &RescueVector<F>) -> Vec<RescueVector<F>>

    Key scheduling for rescue based PRP for Bls12_381 scalars vector of size 4

    source

    pub fn mds_matrix_ref(&self) -> &RescueMatrix<F>

    Return a pointer to the mds matrix. Does not expose secret states.

    @@ -20,29 +20,30 @@ WARNING!!! May expose secret state if keys are supposed to be secret.

    source

    pub fn init_vec_ref(&self) -> &RescueVector<F>

    Return a pointer to the initial vectors. Does not expose secret states.

    -

    Trait Implementations§

    source§

    impl<F: Clone> Clone for PRP<F>

    source§

    fn clone(&self) -> PRP<F>

    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<F: Debug> Debug for PRP<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: RescueParameter> Default for PRP<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F: RescueParameter> From<PRP<F>> for Permutation<F>

    source§

    fn from(rescue: PRP<F>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for PRP<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for PRP<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for PRP<F>
    where - F: Send,

    §

    impl<F> Sync for PRP<F>
    where - F: Sync,

    §

    impl<F> Unpin for PRP<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for PRP<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    source§

    impl<F: Clone> Clone for PRP<F>

    source§

    fn clone(&self) -> PRP<F>

    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<F: Debug> Debug for PRP<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: RescueParameter> Default for PRP<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F: RescueParameter> From<PRP<F>> for Permutation<F>

    source§

    fn from(rescue: PRP<F>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for PRP<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for PRP<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for PRP<F>
    where + F: Send,

    §

    impl<F> Sync for PRP<F>
    where + F: Sync,

    §

    impl<F> Unpin for PRP<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for PRP<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/struct.Permutation.html b/jf_rescue/struct.Permutation.html index 556867502..5f73aae48 100644 --- a/jf_rescue/struct.Permutation.html +++ b/jf_rescue/struct.Permutation.html @@ -1,33 +1,34 @@ -Permutation in jf_rescue - Rust

    Struct jf_rescue::Permutation

    source ·
    pub struct Permutation<F> { /* private fields */ }
    Expand description

    Instance of a unkeyed cryptographic permutation to be used for instantiation +Permutation in jf_rescue - Rust

    Struct jf_rescue::Permutation

    source ·
    pub struct Permutation<F> { /* private fields */ }
    Expand description

    Instance of a unkeyed cryptographic permutation to be used for instantiation hashing, pseudo-random function, and other cryptographic primitives

    Implementations§

    source§

    impl<F: RescueParameter> Permutation<F>

    source

    pub fn round_keys_ref(&self) -> &[RescueVector<F>]

    Return a pointer to the round key. Does not expose secret states.

    source

    pub fn mds_matrix_ref(&self) -> &RescueMatrix<F>

    Return a pointer to the mds matrix. Does not expose secret states.

    source

    pub fn eval(&self, input: &RescueVector<F>) -> RescueVector<F>

    Compute the permutation on RescueVector input

    -

    Trait Implementations§

    source§

    impl<F: Clone> Clone for Permutation<F>

    source§

    fn clone(&self) -> Permutation<F>

    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<F: Debug> Debug for Permutation<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: RescueParameter> Default for Permutation<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F: RescueParameter> From<PRP<F>> for Permutation<F>

    source§

    fn from(rescue: PRP<F>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for Permutation<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for Permutation<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for Permutation<F>
    where - F: Send,

    §

    impl<F> Sync for Permutation<F>
    where - F: Sync,

    §

    impl<F> Unpin for Permutation<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for Permutation<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    source§

    impl<F: Clone> Clone for Permutation<F>

    source§

    fn clone(&self) -> Permutation<F>

    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<F: Debug> Debug for Permutation<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: RescueParameter> Default for Permutation<F>

    source§

    fn default() -> Self

    Returns the “default value” for a type. Read more
    source§

    impl<F: RescueParameter> From<PRP<F>> for Permutation<F>

    source§

    fn from(rescue: PRP<F>) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for Permutation<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for Permutation<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for Permutation<F>
    where + F: Send,

    §

    impl<F> Sync for Permutation<F>
    where + F: Sync,

    §

    impl<F> Unpin for Permutation<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for Permutation<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/struct.RescueMatrix.html b/jf_rescue/struct.RescueMatrix.html index 5d4beb457..d51b6c32b 100644 --- a/jf_rescue/struct.RescueMatrix.html +++ b/jf_rescue/struct.RescueMatrix.html @@ -1,32 +1,33 @@ -RescueMatrix in jf_rescue - Rust

    Struct jf_rescue::RescueMatrix

    source ·
    pub struct RescueMatrix<F> { /* private fields */ }
    Expand description

    A matrix that consists of STATE_SIZE number of rescue vectors.

    -

    Implementations§

    source§

    impl<F: PrimeField> RescueMatrix<F>

    source

    pub fn vec(&self, i: usize) -> RescueVector<F>

    Accessing the i-th vector of the matrix.
    +RescueMatrix in jf_rescue - Rust

    Struct jf_rescue::RescueMatrix

    source ·
    pub struct RescueMatrix<F> { /* private fields */ }
    Expand description

    A matrix that consists of STATE_SIZE number of rescue vectors.

    +

    Implementations§

    source§

    impl<F: PrimeField> RescueMatrix<F>

    source

    pub fn vec(&self, i: usize) -> RescueVector<F>

    Accessing the i-th vector of the matrix.
    Function needs to be public for circuits generation.. WARNING: may expose the internal state.

    -
    source

    pub fn is_empty(&self) -> bool

    Check if the matrix is empty.

    -
    source

    pub fn len(&self) -> usize

    Return the number of columns of the matrix.

    -

    Trait Implementations§

    source§

    impl<F: Clone> Clone for RescueMatrix<F>

    source§

    fn clone(&self) -> RescueMatrix<F>

    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<F: Debug> Debug for RescueMatrix<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> From<&[RescueVector<F>; 4]> for RescueMatrix<F>

    source§

    fn from(vectors: &[RescueVector<F>; 4]) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueMatrix<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueMatrix<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for RescueMatrix<F>
    where - F: Send,

    §

    impl<F> Sync for RescueMatrix<F>
    where - F: Sync,

    §

    impl<F> Unpin for RescueMatrix<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for RescueMatrix<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +
    source

    pub fn is_empty(&self) -> bool

    Check if the matrix is empty.

    +
    source

    pub fn len(&self) -> usize

    Return the number of columns of the matrix.

    +

    Trait Implementations§

    source§

    impl<F: Clone> Clone for RescueMatrix<F>

    source§

    fn clone(&self) -> RescueMatrix<F>

    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<F: Debug> Debug for RescueMatrix<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: PrimeField> From<&[RescueVector<F>; 4]> for RescueMatrix<F>

    source§

    fn from(vectors: &[RescueVector<F>; 4]) -> Self

    Converts to this type from the input type.

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueMatrix<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueMatrix<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for RescueMatrix<F>
    where + F: Send,

    §

    impl<F> Sync for RescueMatrix<F>
    where + F: Sync,

    §

    impl<F> Unpin for RescueMatrix<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for RescueMatrix<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/struct.RescueVector.html b/jf_rescue/struct.RescueVector.html index 605de9c01..1948b4760 100644 --- a/jf_rescue/struct.RescueVector.html +++ b/jf_rescue/struct.RescueVector.html @@ -1,38 +1,40 @@ -RescueVector in jf_rescue - Rust

    Struct jf_rescue::RescueVector

    source ·
    pub struct RescueVector<F> { /* private fields */ }
    Expand description

    Data type for rescue prp inputs, keys and internal data

    +RescueVector in jf_rescue - Rust

    Struct jf_rescue::RescueVector

    source ·
    pub struct RescueVector<F> { /* private fields */ }
    Expand description

    Data type for rescue prp inputs, keys and internal data

    Implementations§

    source§

    impl<F: PrimeField> RescueVector<F>

    source

    pub fn zero() -> RescueVector<F>

    zero vector

    -
    source

    pub fn elems(&self) -> Vec<F>

    Return vector of the field elements +

    source

    pub fn elems(&self) -> Vec<F>

    Return vector of the field elements WARNING: may expose the internal state.

    source

    pub fn linear(&mut self, matrix: &RescueMatrix<F>, vector: &RescueVector<F>)

    Perform a linear transform of the vector. Function needs to be public for circuits generation..

    source§

    impl<F: RescueParameter> RescueVector<F>

    source

    pub fn non_linear(&mut self, matrix: &RescueMatrix<F>, vector: &RescueVector<F>)

    Helper function to compute f(M,x,c) = Mx^a + c. Function needs to be public for circuits generation..

    -

    Trait Implementations§

    source§

    impl<F: Clone> Clone for RescueVector<F>

    source§

    fn clone(&self) -> RescueVector<F>

    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<F: Debug> Debug for RescueVector<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default> Default for RescueVector<F>

    source§

    fn default() -> RescueVector<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: Copy> From<&[F]> for RescueVector<F>

    source§

    fn from(field_elems: &[F]) -> RescueVector<F>

    Converts to this type from the input type.
    source§

    impl<F: Copy> From<&[F; 4]> for RescueVector<F>

    source§

    fn from(field_elems: &[F; 4]) -> RescueVector<F>

    Converts to this type from the input type.
    source§

    impl<F: PartialEq> PartialEq for RescueVector<F>

    source§

    fn eq(&self, other: &RescueVector<F>) -> 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<F: Copy> Copy for RescueVector<F>

    source§

    impl<F: Eq> Eq for RescueVector<F>

    source§

    impl<F> StructuralPartialEq for RescueVector<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueVector<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueVector<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for RescueVector<F>
    where - F: Send,

    §

    impl<F> Sync for RescueVector<F>
    where - F: Sync,

    §

    impl<F> Unpin for RescueVector<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for RescueVector<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    source§

    impl<F: Clone> Clone for RescueVector<F>

    source§

    fn clone(&self) -> RescueVector<F>

    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<F: Debug> Debug for RescueVector<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default> Default for RescueVector<F>

    source§

    fn default() -> RescueVector<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F: Copy> From<&[F]> for RescueVector<F>

    source§

    fn from(field_elems: &[F]) -> RescueVector<F>

    Converts to this type from the input type.
    source§

    impl<F: Copy> From<&[F; 4]> for RescueVector<F>

    source§

    fn from(field_elems: &[F; 4]) -> RescueVector<F>

    Converts to this type from the input type.
    source§

    impl<F: PartialEq> PartialEq for RescueVector<F>

    source§

    fn eq(&self, other: &RescueVector<F>) -> 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<F: Copy> Copy for RescueVector<F>

    source§

    impl<F: Eq> Eq for RescueVector<F>

    source§

    impl<F> StructuralPartialEq for RescueVector<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for RescueVector<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for RescueVector<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for RescueVector<F>
    where + F: Send,

    §

    impl<F> Sync for RescueVector<F>
    where + F: Sync,

    §

    impl<F> Unpin for RescueVector<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for RescueVector<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_rescue/trait.RescueParameter.html b/jf_rescue/trait.RescueParameter.html index 151f8544b..62b8eb06a 100644 --- a/jf_rescue/trait.RescueParameter.html +++ b/jf_rescue/trait.RescueParameter.html @@ -1,21 +1,21 @@ -RescueParameter in jf_rescue - Rust

    Trait jf_rescue::RescueParameter

    source ·
    pub trait RescueParameter: PrimeField + Absorb {
    -    const A: u64;
    -    const A_INV: &'static [u64];
    -    const MDS_LE: [[&'static [u8]; 4]; 4];
    -    const INIT_VEC_LE: [&'static [u8]; 4];
    -    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24];
    -    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25];
    +RescueParameter in jf_rescue - Rust

    Trait jf_rescue::RescueParameter

    source ·
    pub trait RescueParameter: PrimeField + Absorb {
    +    const A: u64;
    +    const A_INV: &'static [u64];
    +    const MDS_LE: [[&'static [u8]; 4]; 4];
    +    const INIT_VEC_LE: [&'static [u8]; 4];
    +    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24];
    +    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25];
     }
    Expand description

    This trait defines constants that are used for rescue hash functions.

    -

    Required Associated Constants§

    source

    const A: u64

    parameter A, a.k.a., alpha

    -
    source

    const A_INV: &'static [u64]

    parameter A^-1

    -
    source

    const MDS_LE: [[&'static [u8]; 4]; 4]

    MDS matrix

    -
    source

    const INIT_VEC_LE: [&'static [u8]; 4]

    Initial vector.

    -
    source

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24]

    Injected keys for each round.

    -
    source

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25]

    Permutation keys.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 11u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    This is a dummy implementation of Rescue parameters +

    Required Associated Constants§

    source

    const A: u64

    parameter A, a.k.a., alpha

    +
    source

    const A_INV: &'static [u64]

    parameter A^-1

    +
    source

    const MDS_LE: [[&'static [u8]; 4]; 4]

    MDS matrix

    +
    source

    const INIT_VEC_LE: [&'static [u8]; 4]

    Initial vector.

    +
    source

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24]

    Injected keys for each round.

    +
    source

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25]

    Permutation keys.

    +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 11u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    This is a dummy implementation of Rescue parameters to satisfy trait bound for Fq. This code should not be used for any other purpose.

    -
    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    This is a dummy implementation of Rescue parameters +

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    This is a dummy implementation of Rescue parameters to satisfy trait bound for Fq. This code should not be used for any other purpose.

    -
    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    source§

    impl RescueParameter for Fq

    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    Implementors§

    \ No newline at end of file +
    source§

    const A: u64 = 5u64

    source§

    const A_INV: &'static [u64] = _

    source§

    const MDS_LE: [[&'static [u8]; 4]; 4] = _

    source§

    const INIT_VEC_LE: [&'static [u8]; 4] = _

    source§

    const KEY_INJECTION_LE: [[&'static [u8]; 4]; 24] = _

    source§

    const PERMUTATION_ROUND_KEYS: [[&'static [u8]; 4]; 25] = _

    Implementors§

    \ No newline at end of file diff --git a/jf_signature/all.html b/jf_signature/all.html index f60794cf4..eab4ffd0d 100644 --- a/jf_signature/all.html +++ b/jf_signature/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/jf_signature/constants/constant.BLS_SIG_COMPRESSED_PK_SIZE.html b/jf_signature/constants/constant.BLS_SIG_COMPRESSED_PK_SIZE.html index fff5a03d0..fedb4f294 100644 --- a/jf_signature/constants/constant.BLS_SIG_COMPRESSED_PK_SIZE.html +++ b/jf_signature/constants/constant.BLS_SIG_COMPRESSED_PK_SIZE.html @@ -1,2 +1,2 @@ -BLS_SIG_COMPRESSED_PK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_COMPRESSED_PK_SIZE

    source ·
    pub const BLS_SIG_COMPRESSED_PK_SIZE: usize = 96;
    Expand description

    Size in bytes of a compressed verification key in our BLS signature scheme.

    +BLS_SIG_COMPRESSED_PK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_COMPRESSED_PK_SIZE

    source ·
    pub const BLS_SIG_COMPRESSED_PK_SIZE: usize = 96;
    Expand description

    Size in bytes of a compressed verification key in our BLS signature scheme.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.BLS_SIG_COMPRESSED_SIGNATURE_SIZE.html b/jf_signature/constants/constant.BLS_SIG_COMPRESSED_SIGNATURE_SIZE.html index 0e9ad8826..43cbb19eb 100644 --- a/jf_signature/constants/constant.BLS_SIG_COMPRESSED_SIGNATURE_SIZE.html +++ b/jf_signature/constants/constant.BLS_SIG_COMPRESSED_SIGNATURE_SIZE.html @@ -1,2 +1,2 @@ -BLS_SIG_COMPRESSED_SIGNATURE_SIZE in jf_signature::constants - Rust
    pub const BLS_SIG_COMPRESSED_SIGNATURE_SIZE: usize = 48;
    Expand description

    Size in bytes of a compressed signature in our BLS signature scheme.

    +BLS_SIG_COMPRESSED_SIGNATURE_SIZE in jf_signature::constants - Rust
    pub const BLS_SIG_COMPRESSED_SIGNATURE_SIZE: usize = 48;
    Expand description

    Size in bytes of a compressed signature in our BLS signature scheme.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.BLS_SIG_PK_SIZE.html b/jf_signature/constants/constant.BLS_SIG_PK_SIZE.html index abb19e1fb..7d332ebaa 100644 --- a/jf_signature/constants/constant.BLS_SIG_PK_SIZE.html +++ b/jf_signature/constants/constant.BLS_SIG_PK_SIZE.html @@ -1,2 +1,2 @@ -BLS_SIG_PK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_PK_SIZE

    source ·
    pub const BLS_SIG_PK_SIZE: usize = 192;
    Expand description

    Size in bytes of a verification key in our BLS signature scheme.

    +BLS_SIG_PK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_PK_SIZE

    source ·
    pub const BLS_SIG_PK_SIZE: usize = 192;
    Expand description

    Size in bytes of a verification key in our BLS signature scheme.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.BLS_SIG_SIGNATURE_SIZE.html b/jf_signature/constants/constant.BLS_SIG_SIGNATURE_SIZE.html index f266f5023..5b323adf5 100644 --- a/jf_signature/constants/constant.BLS_SIG_SIGNATURE_SIZE.html +++ b/jf_signature/constants/constant.BLS_SIG_SIGNATURE_SIZE.html @@ -1,2 +1,2 @@ -BLS_SIG_SIGNATURE_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_SIGNATURE_SIZE

    source ·
    pub const BLS_SIG_SIGNATURE_SIZE: usize = 96;
    Expand description

    Size in bytes of a signature in our BLS signature scheme.

    +BLS_SIG_SIGNATURE_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_SIGNATURE_SIZE

    source ·
    pub const BLS_SIG_SIGNATURE_SIZE: usize = 96;
    Expand description

    Size in bytes of a signature in our BLS signature scheme.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.BLS_SIG_SK_SIZE.html b/jf_signature/constants/constant.BLS_SIG_SK_SIZE.html index d965a6cdf..c6a0afabc 100644 --- a/jf_signature/constants/constant.BLS_SIG_SK_SIZE.html +++ b/jf_signature/constants/constant.BLS_SIG_SK_SIZE.html @@ -1,2 +1,2 @@ -BLS_SIG_SK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_SK_SIZE

    source ·
    pub const BLS_SIG_SK_SIZE: usize = 32;
    Expand description

    Size in bytes of a secret key in our BLS signature scheme.

    +BLS_SIG_SK_SIZE in jf_signature::constants - Rust

    Constant jf_signature::constants::BLS_SIG_SK_SIZE

    source ·
    pub const BLS_SIG_SK_SIZE: usize = 32;
    Expand description

    Size in bytes of a secret key in our BLS signature scheme.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.CS_ID_BLS_BN254.html b/jf_signature/constants/constant.CS_ID_BLS_BN254.html index db1dc7149..5c8e681df 100644 --- a/jf_signature/constants/constant.CS_ID_BLS_BN254.html +++ b/jf_signature/constants/constant.CS_ID_BLS_BN254.html @@ -1,4 +1,4 @@ -CS_ID_BLS_BN254 in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_BLS_BN254

    source ·
    pub const CS_ID_BLS_BN254: &str = "BLS_SIG_BN254G1_XMD:KECCAK_NCTH_NUL_";
    Expand description

    ciphersuite identifier for BLS signature over BN254 +CS_ID_BLS_BN254 in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_BLS_BN254

    source ·
    pub const CS_ID_BLS_BN254: &str = "BLS_SIG_BN254G1_XMD:KECCAK_NCTH_NUL_";
    Expand description

    ciphersuite identifier for BLS signature over BN254 Note this is adapted from https://www.ietf.org/archive/id/draft-irtf-cfrg-bls-signature-05.html#name-ciphersuite-format. In particular the “hash-and-pray” method is not part of https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-hash-to-curve-16, so the tag “NCTH” (non constant time hash) is not standard.

    \ No newline at end of file diff --git a/jf_signature/constants/constant.CS_ID_BLS_MIN_SIG.html b/jf_signature/constants/constant.CS_ID_BLS_MIN_SIG.html index 849413951..bda077e20 100644 --- a/jf_signature/constants/constant.CS_ID_BLS_MIN_SIG.html +++ b/jf_signature/constants/constant.CS_ID_BLS_MIN_SIG.html @@ -1,3 +1,3 @@ -CS_ID_BLS_MIN_SIG in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_BLS_MIN_SIG

    source ·
    pub const CS_ID_BLS_MIN_SIG: &str = "BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_";
    Expand description

    ciphersuite identifier for BLS signature over BLS12_381, see: +CS_ID_BLS_MIN_SIG in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_BLS_MIN_SIG

    source ·
    pub const CS_ID_BLS_MIN_SIG: &str = "BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_";
    Expand description

    ciphersuite identifier for BLS signature over BLS12_381, see: https://www.ietf.org/archive/id/draft-irtf-cfrg-bls-signature-05.html#name-ciphersuite-format

    \ No newline at end of file diff --git a/jf_signature/constants/constant.CS_ID_SCHNORR.html b/jf_signature/constants/constant.CS_ID_SCHNORR.html index 9a92654ea..a44621063 100644 --- a/jf_signature/constants/constant.CS_ID_SCHNORR.html +++ b/jf_signature/constants/constant.CS_ID_SCHNORR.html @@ -1,2 +1,2 @@ -CS_ID_SCHNORR in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_SCHNORR

    source ·
    pub const CS_ID_SCHNORR: &str = "SCHNORR_WITH_RESCUE_HASH_v01";
    Expand description

    ciphersuite identifier for schnorr signature

    +CS_ID_SCHNORR in jf_signature::constants - Rust

    Constant jf_signature::constants::CS_ID_SCHNORR

    source ·
    pub const CS_ID_SCHNORR: &str = "SCHNORR_WITH_RESCUE_HASH_v01";
    Expand description

    ciphersuite identifier for schnorr signature

    \ No newline at end of file diff --git a/jf_signature/constants/index.html b/jf_signature/constants/index.html index b13578c1c..9c59eff74 100644 --- a/jf_signature/constants/index.html +++ b/jf_signature/constants/index.html @@ -1,4 +1,4 @@ -jf_signature::constants - Rust

    Module jf_signature::constants

    source ·
    Expand description

    Tags to be used for tagged-base64

    +jf_signature::constants - Rust

    Module jf_signature::constants

    source ·
    Expand description

    Tags to be used for tagged-base64

    Modules§

    Constants§

    Verify a signature.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/jf_utils/all.html b/jf_utils/all.html index 9206d57b6..2e2cc8057 100644 --- a/jf_utils/all.html +++ b/jf_utils/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/jf_utils/canonical/fn.deserialize.html b/jf_utils/canonical/fn.deserialize.html index ea54e5aff..d834b0d77 100644 --- a/jf_utils/canonical/fn.deserialize.html +++ b/jf_utils/canonical/fn.deserialize.html @@ -1,3 +1,3 @@ -deserialize in jf_utils::canonical - Rust

    Function jf_utils::canonical::deserialize

    source ·
    pub fn deserialize<'de, D: Deserializer<'de>, T: CanonicalDeserialize>(
    +deserialize in jf_utils::canonical - Rust

    Function jf_utils::canonical::deserialize

    source ·
    pub fn deserialize<'de, D: Deserializer<'de>, T: CanonicalDeserialize>(
         deserializer: D,
    -) -> Result<T, D::Error>
    \ No newline at end of file +) -> Result<T, D::Error>
    \ No newline at end of file diff --git a/jf_utils/canonical/fn.serialize.html b/jf_utils/canonical/fn.serialize.html index 7146ef14d..c8a08525e 100644 --- a/jf_utils/canonical/fn.serialize.html +++ b/jf_utils/canonical/fn.serialize.html @@ -1,4 +1,4 @@ -serialize in jf_utils::canonical - Rust

    Function jf_utils::canonical::serialize

    source ·
    pub fn serialize<S: Serializer, T: CanonicalSerialize>(
    -    elem: &T,
    +serialize in jf_utils::canonical - Rust

    Function jf_utils::canonical::serialize

    source ·
    pub fn serialize<S: Serializer, T: CanonicalSerialize>(
    +    elem: &T,
         serializer: S,
    -) -> Result<S::Ok, S::Error>
    \ No newline at end of file +) -> Result<S::Ok, S::Error>
    \ No newline at end of file diff --git a/jf_utils/canonical/index.html b/jf_utils/canonical/index.html index e30fbf944..2962f9b2b 100644 --- a/jf_utils/canonical/index.html +++ b/jf_utils/canonical/index.html @@ -1,7 +1,7 @@ -jf_utils::canonical - Rust

    Module jf_utils::canonical

    source ·
    Expand description

    Serializers for elements that are Ark-Works serializable but not serde +jf_utils::canonical - Rust

    Module jf_utils::canonical

    source ·
    Expand description

    Serializers for elements that are Ark-Works serializable but not serde serializable.

    Many cryptographic objects (e.g. finite field elements) are foreign types that we cannot apply tagged or #[derive(Deserialize, Serialize)] to. -Instead, use #[serde(with = "canonical")] at the point where the object is +Instead, use #[serde(with = "canonical")] at the point where the object is used inside a struct or enum definition.

    Functions§

    \ No newline at end of file diff --git a/jf_utils/fn.bytes_from_field_elements.html b/jf_utils/fn.bytes_from_field_elements.html index 969756c4f..4fa876abb 100644 --- a/jf_utils/fn.bytes_from_field_elements.html +++ b/jf_utils/fn.bytes_from_field_elements.html @@ -1,5 +1,5 @@ -bytes_from_field_elements in jf_utils - Rust

    Function jf_utils::bytes_from_field_elements

    source ·
    pub fn bytes_from_field_elements<T, F>(elems: T) -> Vec<u8>
    where - T: Borrow<[F]>, +bytes_from_field_elements in jf_utils - Rust

    Function jf_utils::bytes_from_field_elements

    source ·
    pub fn bytes_from_field_elements<T, F>(elems: T) -> Vec<u8>
    where + T: Borrow<[F]>, F: Field,
    Expand description

    Deterministic, infallible inverse of bytes_to_field_elements.

    This function is not invertible because bytes_to_field_elements is not onto.

    diff --git a/jf_utils/fn.bytes_to_field_elements.html b/jf_utils/fn.bytes_to_field_elements.html index d1cdc4642..abd526d69 100644 --- a/jf_utils/fn.bytes_to_field_elements.html +++ b/jf_utils/fn.bytes_to_field_elements.html @@ -1,5 +1,5 @@ -bytes_to_field_elements in jf_utils - Rust

    Function jf_utils::bytes_to_field_elements

    source ·
    pub fn bytes_to_field_elements<B, F>(bytes: B) -> Vec<F>
    where - B: Borrow<[u8]>, +bytes_to_field_elements in jf_utils - Rust

    Function jf_utils::bytes_to_field_elements

    source ·
    pub fn bytes_to_field_elements<B, F>(bytes: B) -> Vec<F>
    where + B: Borrow<[u8]>, F: Field,
    Expand description

    Deterministic, infallible, invertible conversion from arbitrary bytes to field elements.

    §How it works

    diff --git a/jf_utils/fn.challenge_bit_len.html b/jf_utils/fn.challenge_bit_len.html index 25820d7ec..40f8dee0c 100644 --- a/jf_utils/fn.challenge_bit_len.html +++ b/jf_utils/fn.challenge_bit_len.html @@ -1 +1 @@ -challenge_bit_len in jf_utils - Rust

    Function jf_utils::challenge_bit_len

    source ·
    pub fn challenge_bit_len<F: PrimeField>() -> usize
    \ No newline at end of file +challenge_bit_len in jf_utils - Rust

    Function jf_utils::challenge_bit_len

    source ·
    pub fn challenge_bit_len<F: PrimeField>() -> usize
    \ No newline at end of file diff --git a/jf_utils/fn.compute_len_to_next_multiple.html b/jf_utils/fn.compute_len_to_next_multiple.html index 059f81857..e7e784a07 100644 --- a/jf_utils/fn.compute_len_to_next_multiple.html +++ b/jf_utils/fn.compute_len_to_next_multiple.html @@ -1 +1 @@ -compute_len_to_next_multiple in jf_utils - Rust

    Function jf_utils::compute_len_to_next_multiple

    source ·
    pub fn compute_len_to_next_multiple(len: usize, multiple: usize) -> usize
    \ No newline at end of file +compute_len_to_next_multiple in jf_utils - Rust

    Function jf_utils::compute_len_to_next_multiple

    source ·
    pub fn compute_len_to_next_multiple(len: usize, multiple: usize) -> usize
    \ No newline at end of file diff --git a/jf_utils/fn.field_bit_len.html b/jf_utils/fn.field_bit_len.html index 44f0d463d..7bdc08119 100644 --- a/jf_utils/fn.field_bit_len.html +++ b/jf_utils/fn.field_bit_len.html @@ -1 +1 @@ -field_bit_len in jf_utils - Rust

    Function jf_utils::field_bit_len

    source ·
    pub fn field_bit_len<F: PrimeField>() -> usize
    \ No newline at end of file +field_bit_len in jf_utils - Rust

    Function jf_utils::field_bit_len

    source ·
    pub fn field_bit_len<F: PrimeField>() -> usize
    \ No newline at end of file diff --git a/jf_utils/fn.field_byte_len.html b/jf_utils/fn.field_byte_len.html index dfdeaa6a5..4f6cdffe5 100644 --- a/jf_utils/fn.field_byte_len.html +++ b/jf_utils/fn.field_byte_len.html @@ -1 +1 @@ -field_byte_len in jf_utils - Rust

    Function jf_utils::field_byte_len

    source ·
    pub fn field_byte_len<F: PrimeField>() -> usize
    \ No newline at end of file +field_byte_len in jf_utils - Rust

    Function jf_utils::field_byte_len

    source ·
    pub fn field_byte_len<F: PrimeField>() -> usize
    \ No newline at end of file diff --git a/jf_utils/fn.field_switching.html b/jf_utils/fn.field_switching.html index aff33bc28..ac1231a62 100644 --- a/jf_utils/fn.field_switching.html +++ b/jf_utils/fn.field_switching.html @@ -1,3 +1,3 @@ -field_switching in jf_utils - Rust

    Function jf_utils::field_switching

    source ·
    pub fn field_switching<F, T>(base: &F) -> T
    where +field_switching in jf_utils - Rust

    Function jf_utils::field_switching

    source ·
    pub fn field_switching<F, T>(base: &F) -> T
    where F: PrimeField, T: PrimeField,
    \ No newline at end of file diff --git a/jf_utils/fn.fq_to_fr.html b/jf_utils/fn.fq_to_fr.html index 4b8da64ea..d3aafd45d 100644 --- a/jf_utils/fn.fq_to_fr.html +++ b/jf_utils/fn.fq_to_fr.html @@ -1,4 +1,4 @@ -fq_to_fr in jf_utils - Rust

    Function jf_utils::fq_to_fr

    source ·
    pub fn fq_to_fr<F, P>(base: &F) -> P::ScalarField
    where +fq_to_fr in jf_utils - Rust

    Function jf_utils::fq_to_fr

    source ·
    pub fn fq_to_fr<F, P>(base: &F) -> P::ScalarField
    where F: PrimeField, P: CurveConfig<BaseField = F>,
    Expand description

    Convert a base field element to a scalar field element. Perform a mod reduction if the base field element is greater than diff --git a/jf_utils/fn.fq_to_fr_with_mask.html b/jf_utils/fn.fq_to_fr_with_mask.html index b03644f2b..dde6df0c1 100644 --- a/jf_utils/fn.fq_to_fr_with_mask.html +++ b/jf_utils/fn.fq_to_fr_with_mask.html @@ -1,4 +1,4 @@ -fq_to_fr_with_mask in jf_utils - Rust

    Function jf_utils::fq_to_fr_with_mask

    source ·
    pub fn fq_to_fr_with_mask<F, T>(base: &F) -> T
    where +fq_to_fr_with_mask in jf_utils - Rust

    Function jf_utils::fq_to_fr_with_mask

    source ·
    pub fn fq_to_fr_with_mask<F, T>(base: &F) -> T
    where F: PrimeField, T: PrimeField,
    Expand description

    Convert a field element in F(rom) to a field element in T(o), with |T| < |F|; truncating the element via masking the top diff --git a/jf_utils/fn.fr_to_fq.html b/jf_utils/fn.fr_to_fq.html index 21b385724..132f2ef66 100644 --- a/jf_utils/fn.fr_to_fq.html +++ b/jf_utils/fn.fr_to_fq.html @@ -1,4 +1,4 @@ -fr_to_fq in jf_utils - Rust

    Function jf_utils::fr_to_fq

    source ·
    pub fn fr_to_fq<F, P>(scalar: &P::ScalarField) -> F
    where +fr_to_fq in jf_utils - Rust

    Function jf_utils::fr_to_fq

    source ·
    pub fn fr_to_fq<F, P>(scalar: &P::ScalarField) -> F
    where F: PrimeField, P: CurveConfig<BaseField = F>,
    Expand description

    Convert a scalar field element to a base field element. Mod reduction is not performed since the conversion occurs diff --git a/jf_utils/fn.hadamard_product.html b/jf_utils/fn.hadamard_product.html index b13a4ebe2..3a89c91b9 100644 --- a/jf_utils/fn.hadamard_product.html +++ b/jf_utils/fn.hadamard_product.html @@ -1,6 +1,6 @@ -hadamard_product in jf_utils - Rust

    Function jf_utils::hadamard_product

    source ·
    pub fn hadamard_product<T, B>(
    -    a: impl AsRef<[T]>,
    -    b: impl AsRef<[B]>,
    -) -> Result<Vec<B>, String>
    where - B: for<'a> Mul<&'a T, Output = B> + Copy,
    Expand description

    Compute the hadamard product of two vectors (of equal length).

    +hadamard_product in jf_utils - Rust

    Function jf_utils::hadamard_product

    source ·
    pub fn hadamard_product<T, B>(
    +    a: impl AsRef<[T]>,
    +    b: impl AsRef<[B]>,
    +) -> Result<Vec<B>, String>
    where + B: for<'a> Mul<&'a T, Output = B> + Copy,
    Expand description

    Compute the hadamard product of two vectors (of equal length).

    \ No newline at end of file diff --git a/jf_utils/fn.hash_to_field.html b/jf_utils/fn.hash_to_field.html index eb013f0a5..157ee1fe9 100644 --- a/jf_utils/fn.hash_to_field.html +++ b/jf_utils/fn.hash_to_field.html @@ -1,5 +1,5 @@ -hash_to_field in jf_utils - Rust

    Function jf_utils::hash_to_field

    source ·
    pub fn hash_to_field<B, F>(bytes: B) -> F
    where - B: AsRef<[u8]>, +hash_to_field in jf_utils - Rust

    Function jf_utils::hash_to_field

    source ·
    pub fn hash_to_field<B, F>(bytes: B) -> F
    where + B: AsRef<[u8]>, F: PrimeField,
    Expand description

    Hash a sequence of bytes to into a field element, whose order is less than 256 bits.

    \ No newline at end of file diff --git a/jf_utils/fn.multi_pairing.html b/jf_utils/fn.multi_pairing.html index e49a6d405..2318b51c4 100644 --- a/jf_utils/fn.multi_pairing.html +++ b/jf_utils/fn.multi_pairing.html @@ -1,4 +1,4 @@ -multi_pairing in jf_utils - Rust

    Function jf_utils::multi_pairing

    source ·
    pub fn multi_pairing<E>(
    +multi_pairing in jf_utils - Rust

    Function jf_utils::multi_pairing

    source ·
    pub fn multi_pairing<E>(
         g1_elems: &[E::G1Affine],
         g2_elems: &[E::G2Affine],
     ) -> PairingOutput<E>
    where diff --git a/jf_utils/fn.pad_with_zeros.html b/jf_utils/fn.pad_with_zeros.html index 95092310f..f4587f9ad 100644 --- a/jf_utils/fn.pad_with_zeros.html +++ b/jf_utils/fn.pad_with_zeros.html @@ -1 +1 @@ -pad_with_zeros in jf_utils - Rust

    Function jf_utils::pad_with_zeros

    source ·
    pub fn pad_with_zeros<F: Field>(vec: &mut Vec<F>, multiple: usize)
    \ No newline at end of file +pad_with_zeros in jf_utils - Rust

    Function jf_utils::pad_with_zeros

    source ·
    pub fn pad_with_zeros<F: Field>(vec: &mut Vec<F>, multiple: usize)
    \ No newline at end of file diff --git a/jf_utils/fn.test_rng.html b/jf_utils/fn.test_rng.html index 1668ef70f..4605d2c9d 100644 --- a/jf_utils/fn.test_rng.html +++ b/jf_utils/fn.test_rng.html @@ -1 +1 @@ -test_rng in jf_utils - Rust

    Function jf_utils::test_rng

    source ·
    pub fn test_rng() -> StdRng
    \ No newline at end of file +test_rng in jf_utils - Rust

    Function jf_utils::test_rng

    source ·
    pub fn test_rng() -> StdRng
    \ No newline at end of file diff --git a/jf_utils/index.html b/jf_utils/index.html index 57e048292..37d4af17c 100644 --- a/jf_utils/index.html +++ b/jf_utils/index.html @@ -1,4 +1,4 @@ -jf_utils - Rust

    Crate jf_utils

    source ·
    Expand description

    Jellyfish utilities library.

    +jf_utils - Rust

    Crate jf_utils

    source ·
    Expand description

    Jellyfish utilities library.

    Modules§

    Macros§

    Auto Trait Implementations§

    §

    impl<F> Freeze for MinRoot<F>

    §

    impl<F> RefUnwindSafe for MinRoot<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for MinRoot<F>

    §

    impl<F> Sync for MinRoot<F>

    §

    impl<F> Unpin for MinRoot<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for MinRoot<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vdf/minroot/struct.MinRootElement.html b/jf_vdf/minroot/struct.MinRootElement.html index f4d163ff7..17ed39f20 100644 --- a/jf_vdf/minroot/struct.MinRootElement.html +++ b/jf_vdf/minroot/struct.MinRootElement.html @@ -1,62 +1,64 @@ -MinRootElement in jf_vdf::minroot - Rust

    Struct jf_vdf::minroot::MinRootElement

    source ·
    pub struct MinRootElement<F: MinRootField>(/* private fields */);
    Expand description

    A minroot element consists of a pair of field elements.

    -

    Trait Implementations§

    source§

    impl<F: MinRootField> CanonicalDeserialize for MinRootElement<F>

    source§

    fn deserialize_with_mode<R: Read>( +MinRootElement in jf_vdf::minroot - Rust

    Struct jf_vdf::minroot::MinRootElement

    source ·
    pub struct MinRootElement<F: MinRootField>(/* private fields */);
    Expand description

    A minroot element consists of a pair of field elements.

    +

    Trait Implementations§

    source§

    impl<F: MinRootField> CanonicalDeserialize for MinRootElement<F>

    source§

    fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    source§

    impl<F: MinRootField> CanonicalSerialize for MinRootElement<F>

    source§

    fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
    where + R: Read,

    source§

    impl<F: MinRootField> CanonicalSerialize for MinRootElement<F>

    source§

    fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<F: Clone + MinRootField> Clone for MinRootElement<F>

    source§

    fn clone(&self) -> MinRootElement<F>

    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<F: Debug + MinRootField> Debug for MinRootElement<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + MinRootField> Default for MinRootElement<F>

    source§

    fn default() -> MinRootElement<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F, T> From<T> for MinRootElement<F>
    where +) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<F: Clone + MinRootField> Clone for MinRootElement<F>

    source§

    fn clone(&self) -> MinRootElement<F>

    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<F: Debug + MinRootField> Debug for MinRootElement<F>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<F: Default + MinRootField> Default for MinRootElement<F>

    source§

    fn default() -> MinRootElement<F>

    Returns the “default value” for a type. Read more
    source§

    impl<F, T> From<T> for MinRootElement<F>
    where T: AffineRepr<BaseField = F>, - F: MinRootField,

    source§

    fn from(value: T) -> Self

    Converts to this type from the input type.
    source§

    impl<F: Ord + MinRootField> Ord for MinRootElement<F>

    source§

    fn cmp(&self, other: &MinRootElement<F>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where - Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where - Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<F: PartialEq + MinRootField> PartialEq for MinRootElement<F>

    source§

    fn eq(&self, other: &MinRootElement<F>) -> 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<F: PartialOrd + MinRootField> PartialOrd for MinRootElement<F>

    source§

    fn partial_cmp(&self, other: &MinRootElement<F>) -> 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 <= -operator. 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 >= -operator. Read more
    source§

    impl<F: MinRootField> Valid for MinRootElement<F>

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
    where - Self: 'a,

    source§

    impl<F: Copy + MinRootField> Copy for MinRootElement<F>

    source§

    impl<F: Eq + MinRootField> Eq for MinRootElement<F>

    source§

    impl<F: MinRootField> StructuralPartialEq for MinRootElement<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for MinRootElement<F>
    where - F: Freeze,

    §

    impl<F> RefUnwindSafe for MinRootElement<F>
    where - F: RefUnwindSafe,

    §

    impl<F> Send for MinRootElement<F>

    §

    impl<F> Sync for MinRootElement<F>

    §

    impl<F> Unpin for MinRootElement<F>
    where - F: Unpin,

    §

    impl<F> UnwindSafe for MinRootElement<F>
    where - F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where - T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + F: MinRootField,

    source§

    fn from(value: T) -> Self

    Converts to this type from the input type.
    source§

    impl<F: Ord + MinRootField> Ord for MinRootElement<F>

    source§

    fn cmp(&self, other: &MinRootElement<F>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where + Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl<F: PartialEq + MinRootField> PartialEq for MinRootElement<F>

    source§

    fn eq(&self, other: &MinRootElement<F>) -> 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<F: PartialOrd + MinRootField> PartialOrd for MinRootElement<F>

    source§

    fn partial_cmp(&self, other: &MinRootElement<F>) -> 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 <= +operator. 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 >= +operator. Read more
    source§

    impl<F: MinRootField> Valid for MinRootElement<F>

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
    where + Self: 'a,

    source§

    impl<F: Copy + MinRootField> Copy for MinRootElement<F>

    source§

    impl<F: Eq + MinRootField> Eq for MinRootElement<F>

    source§

    impl<F: MinRootField> StructuralPartialEq for MinRootElement<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for MinRootElement<F>
    where + F: Freeze,

    §

    impl<F> RefUnwindSafe for MinRootElement<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for MinRootElement<F>

    §

    impl<F> Sync for MinRootElement<F>

    §

    impl<F> Unpin for MinRootElement<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for MinRootElement<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where + T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where H: Digest,

    §

    fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where - H: Digest,

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: Digest,
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vdf/minroot/struct.MinRootPP.html b/jf_vdf/minroot/struct.MinRootPP.html index 7ad93d091..fbe1a63e2 100644 --- a/jf_vdf/minroot/struct.MinRootPP.html +++ b/jf_vdf/minroot/struct.MinRootPP.html @@ -1,59 +1,61 @@ -MinRootPP in jf_vdf::minroot - Rust

    Struct jf_vdf::minroot::MinRootPP

    source ·
    pub struct MinRootPP {
    -    pub difficulty: u64,
    +MinRootPP in jf_vdf::minroot - Rust

    Struct jf_vdf::minroot::MinRootPP

    source ·
    pub struct MinRootPP {
    +    pub difficulty: u64,
     }
    Expand description

    Public parameter for MinRoot DF,

    -

    Fields§

    §difficulty: u64

    Indicates the number of iterations

    -

    Trait Implementations§

    source§

    impl CanonicalDeserialize for MinRootPP

    Fields§

    §difficulty: u64

    Indicates the number of iterations

    +

    Trait Implementations§

    source§

    impl CanonicalDeserialize for MinRootPP

    source§

    fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    source§

    impl CanonicalSerialize for MinRootPP

    source§

    fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
    where + R: Read,

    source§

    impl CanonicalSerialize for MinRootPP

    source§

    fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl Clone for MinRootPP

    source§

    fn clone(&self) -> MinRootPP

    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 MinRootPP

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for MinRootPP

    source§

    fn default() -> MinRootPP

    Returns the “default value” for a type. Read more
    source§

    impl Ord for MinRootPP

    source§

    fn cmp(&self, other: &MinRootPP) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where - Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where - Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where - Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for MinRootPP

    source§

    fn eq(&self, other: &MinRootPP) -> 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 PartialOrd for MinRootPP

    source§

    fn partial_cmp(&self, other: &MinRootPP) -> 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 <= -operator. 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 >= -operator. Read more
    source§

    impl Valid for MinRootPP

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
    where - Self: 'a,

    source§

    impl Copy for MinRootPP

    source§

    impl Eq for MinRootPP

    source§

    impl StructuralPartialEq for MinRootPP

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where - T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where +) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl Clone for MinRootPP

    source§

    fn clone(&self) -> MinRootPP

    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 MinRootPP

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Default for MinRootPP

    source§

    fn default() -> MinRootPP

    Returns the “default value” for a type. Read more
    source§

    impl Ord for MinRootPP

    source§

    fn cmp(&self, other: &MinRootPP) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where + Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where + Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where + Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    source§

    impl PartialEq for MinRootPP

    source§

    fn eq(&self, other: &MinRootPP) -> 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 PartialOrd for MinRootPP

    source§

    fn partial_cmp(&self, other: &MinRootPP) -> 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 <= +operator. 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 >= +operator. Read more
    source§

    impl Valid for MinRootPP

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
    where + Self: 'a,

    source§

    impl Copy for MinRootPP

    source§

    impl Eq for MinRootPP

    source§

    impl StructuralPartialEq for MinRootPP

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where + T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where H: Digest,

    §

    fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where - H: Digest,

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: Digest,
    source§

    impl<T> CloneToUninit for T
    where + T: Copy,

    source§

    unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vdf/minroot/trait.MinRootField.html b/jf_vdf/minroot/trait.MinRootField.html index a352d38df..a2c62b856 100644 --- a/jf_vdf/minroot/trait.MinRootField.html +++ b/jf_vdf/minroot/trait.MinRootField.html @@ -1,7 +1,7 @@ -MinRootField in jf_vdf::minroot - Rust

    Trait jf_vdf::minroot::MinRootField

    source ·
    pub trait MinRootField: PrimeField {
    +MinRootField in jf_vdf::minroot - Rust

    Trait jf_vdf::minroot::MinRootField

    source ·
    pub trait MinRootField: PrimeField {
         const EXP_COEF: Self::BigInt;
     }
    Expand description

    MinRoot compatible field

    Required Associated Constants§

    source

    const EXP_COEF: Self::BigInt

    The MinRoot iteration is calculating the cubic root (or fifth-root if modulus % 3 == 1) of a field element. E.g. EXP_COEF should be (2 * modulus - 1) / 3 if modulus % 3 != 1.

    -

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    Implementors§

    \ No newline at end of file +

    Object Safety§

    This trait is not object safe.

    Implementations on Foreign Types§

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    source§

    impl MinRootField for Fr

    source§

    const EXP_COEF: Self::BigInt = _

    Implementors§

    \ No newline at end of file diff --git a/jf_vdf/struct.VDFError.html b/jf_vdf/struct.VDFError.html index 520075494..f9ffa04ba 100644 --- a/jf_vdf/struct.VDFError.html +++ b/jf_vdf/struct.VDFError.html @@ -1,25 +1,25 @@ -VDFError in jf_vdf - Rust

    Struct jf_vdf::VDFError

    source ·
    pub struct VDFError(/* private fields */);
    Expand description

    VDF error type

    -

    Trait Implementations§

    source§

    impl Debug for VDFError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for VDFError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for VDFError

    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 PartialEq for VDFError

    source§

    fn eq(&self, other: &VDFError) -> 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 VDFError

    source§

    impl StructuralPartialEq for VDFError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +VDFError in jf_vdf - Rust

    Struct jf_vdf::VDFError

    source ·
    pub struct VDFError(/* private fields */);
    Expand description

    VDF error type

    +

    Trait Implementations§

    source§

    impl Debug for VDFError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for VDFError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for VDFError

    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 PartialEq for VDFError

    source§

    fn eq(&self, other: &VDFError) -> 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 VDFError

    source§

    impl StructuralPartialEq for VDFError

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vdf/trait.VDF.html b/jf_vdf/trait.VDF.html index 83c15cc39..aa75a7f9d 100644 --- a/jf_vdf/trait.VDF.html +++ b/jf_vdf/trait.VDF.html @@ -1,44 +1,44 @@ -VDF in jf_vdf - Rust

    Trait jf_vdf::VDF

    source ·
    pub trait VDF {
    +VDF in jf_vdf - Rust

    Trait jf_vdf::VDF

    source ·
    pub trait VDF {
         type PublicParameter;
    -    type Proof: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
    -    type Input: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
    -    type Output: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
    +    type Proof: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
    +    type Input: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
    +    type Output: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq;
     
         // Required methods
         fn setup<R: CryptoRng + RngCore>(
    -        difficulty: u64,
    -        prng: Option<&mut R>,
    -    ) -> Result<Self::PublicParameter, VDFError>;
    +        difficulty: u64,
    +        prng: Option<&mut R>,
    +    ) -> Result<Self::PublicParameter, VDFError>;
         fn eval(
             pp: &Self::PublicParameter,
             input: &Self::Input,
    -    ) -> Result<(Self::Output, Self::Proof), VDFError>;
    +    ) -> Result<(Self::Output, Self::Proof), VDFError>;
         fn verify(
             pp: &Self::PublicParameter,
             input: &Self::Input,
             output: &Self::Output,
             proof: &Self::Proof,
    -    ) -> Result<Result<(), ()>, VDFError>;
    +    ) -> Result<Result<(), ()>, VDFError>;
     }
    Expand description

    A trait for VDF proof, evaluation and verification.

    Required Associated Types§

    source

    type PublicParameter

    Public parameters

    -
    source

    type Proof: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF proof.

    -
    source

    type Input: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF input.

    -
    source

    type Output: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF output.

    +
    source

    type Proof: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF proof.

    +
    source

    type Input: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF input.

    +
    source

    type Output: Debug + Clone + Send + Sync + CanonicalSerialize + CanonicalDeserialize + PartialEq + Eq

    VDF output.

    Required Methods§

    source

    fn setup<R: CryptoRng + RngCore>( - difficulty: u64, - prng: Option<&mut R>, -) -> Result<Self::PublicParameter, VDFError>

    Generates a public parameter from RNG with given difficulty. + difficulty: u64, + prng: Option<&mut R>, +) -> Result<Self::PublicParameter, VDFError>

    Generates a public parameter from RNG with given difficulty. Concrete instantiations of VDF shall document properly about the correspondence between the difficulty value and the time required for evaluation/proof generation.

    source

    fn eval( pp: &Self::PublicParameter, input: &Self::Input, -) -> Result<(Self::Output, Self::Proof), VDFError>

    Computes the VDF output and proof.

    +) -> Result<(Self::Output, Self::Proof), VDFError>

    Computes the VDF output and proof.

    source

    fn verify( pp: &Self::PublicParameter, input: &Self::Input, output: &Self::Output, proof: &Self::Proof, -) -> Result<Result<(), ()>, VDFError>

    Verifies a VDF output given the proof.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file +) -> Result<Result<(), ()>, VDFError>

    Verifies a VDF output given the proof.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    \ No newline at end of file diff --git a/jf_vid/advz/index.html b/jf_vid/advz/index.html index cb37d3b0b..3e7a7507b 100644 --- a/jf_vid/advz/index.html +++ b/jf_vid/advz/index.html @@ -1,4 +1,4 @@ -jf_vid::advz - Rust

    Module jf_vid::advz

    source ·
    Expand description

    Implementation of Verifiable Information Dispersal (VID) from https://eprint.iacr.org/2021/1500.

    +jf_vid::advz - Rust

    Module jf_vid::advz

    source ·
    Expand description

    Implementation of Verifiable Information Dispersal (VID) from https://eprint.iacr.org/2021/1500.

    advz named for the authors Alhaddad-Duan-Varia-Zhang.

    Modules§

    Structs§

    Traits§

    source§

    impl<F> Serialize for LargeRangeProof<F>
    where + F: CanonicalSerialize + CanonicalDeserialize,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<F: Eq> Eq for LargeRangeProof<F>

    source§

    impl<F> StructuralPartialEq for LargeRangeProof<F>

    Auto Trait Implementations§

    §

    impl<F> Freeze for LargeRangeProof<F>

    §

    impl<F> RefUnwindSafe for LargeRangeProof<F>
    where + F: RefUnwindSafe,

    §

    impl<F> Send for LargeRangeProof<F>
    where + F: Send,

    §

    impl<F> Sync for LargeRangeProof<F>
    where + F: Sync,

    §

    impl<F> Unpin for LargeRangeProof<F>
    where + F: Unpin,

    §

    impl<F> UnwindSafe for LargeRangeProof<F>
    where + F: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/jf_vid/advz/payload_prover/struct.SmallRangeProof.html b/jf_vid/advz/payload_prover/struct.SmallRangeProof.html index 67e6ed7b0..1254bb5ef 100644 --- a/jf_vid/advz/payload_prover/struct.SmallRangeProof.html +++ b/jf_vid/advz/payload_prover/struct.SmallRangeProof.html @@ -1,60 +1,61 @@ -SmallRangeProof in jf_vid::advz::payload_prover - Rust

    Struct jf_vid::advz::payload_prover::SmallRangeProof

    source ·
    pub struct SmallRangeProof<P> { /* private fields */ }
    Expand description

    A proof intended for use on small payload subslices.

    +SmallRangeProof in jf_vid::advz::payload_prover - Rust

    Struct jf_vid::advz::payload_prover::SmallRangeProof

    source ·
    pub struct SmallRangeProof<P> { /* private fields */ }
    Expand description

    A proof intended for use on small payload subslices.

    KZG batch proofs and accompanying metadata.

    TODO use batch proof instead of Vec<P> https://github.com/EspressoSystems/jellyfish/issues/387

    -

    Trait Implementations§

    source§

    impl<P: Clone> Clone for SmallRangeProof<P>

    source§

    fn clone(&self) -> SmallRangeProof<P>

    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<P: Debug> Debug for SmallRangeProof<P>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, P> Deserialize<'de> for SmallRangeProof<P>
    where - P: CanonicalSerialize + CanonicalDeserialize,

    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<P: PartialEq> PartialEq for SmallRangeProof<P>

    source§

    fn eq(&self, other: &SmallRangeProof<P>) -> 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<P: Clone> Clone for SmallRangeProof<P>

    source§

    fn clone(&self) -> SmallRangeProof<P>

    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<P: Debug> Debug for SmallRangeProof<P>

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, P> Deserialize<'de> for SmallRangeProof<P>
    where + P: CanonicalSerialize + CanonicalDeserialize,

    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<P: PartialEq> PartialEq for SmallRangeProof<P>

    source§

    fn eq(&self, other: &SmallRangeProof<P>) -> 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<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>( &self, payload: B, - range: Range<usize>, + range: Range<usize>, ) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where - B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( + B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( &self, stmt: Statement<'_, Self>, proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, -) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<P> Serialize for SmallRangeProof<P>
    where - P: CanonicalSerialize + CanonicalDeserialize,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<P: Eq> Eq for SmallRangeProof<P>

    source§

    impl<P> StructuralPartialEq for SmallRangeProof<P>

    Auto Trait Implementations§

    §

    impl<P> Freeze for SmallRangeProof<P>

    §

    impl<P> RefUnwindSafe for SmallRangeProof<P>
    where - P: RefUnwindSafe,

    §

    impl<P> Send for SmallRangeProof<P>
    where - P: Send,

    §

    impl<P> Sync for SmallRangeProof<P>
    where - P: Sync,

    §

    impl<P> Unpin for SmallRangeProof<P>
    where - P: Unpin,

    §

    impl<P> UnwindSafe for SmallRangeProof<P>
    where - P: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> VidResult<Result<(), ()>>
    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<P> Serialize for SmallRangeProof<P>
    where + P: CanonicalSerialize + CanonicalDeserialize,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<P: Eq> Eq for SmallRangeProof<P>

    source§

    impl<P> StructuralPartialEq for SmallRangeProof<P>

    Auto Trait Implementations§

    §

    impl<P> Freeze for SmallRangeProof<P>

    §

    impl<P> RefUnwindSafe for SmallRangeProof<P>
    where + P: RefUnwindSafe,

    §

    impl<P> Send for SmallRangeProof<P>
    where + P: Send,

    §

    impl<P> Sync for SmallRangeProof<P>
    where + P: Sync,

    §

    impl<P> Unpin for SmallRangeProof<P>
    where + P: Unpin,

    §

    impl<P> UnwindSafe for SmallRangeProof<P>
    where + P: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    \ No newline at end of file diff --git a/jf_vid/advz/precomputable/index.html b/jf_vid/advz/precomputable/index.html index a4da124cd..68ed6793a 100644 --- a/jf_vid/advz/precomputable/index.html +++ b/jf_vid/advz/precomputable/index.html @@ -1,2 +1,2 @@ -jf_vid::advz::precomputable - Rust

    Module jf_vid::advz::precomputable

    source ·
    Expand description

    Implementations of Precomputable for Advz.

    +jf_vid::advz::precomputable - Rust

    Module jf_vid::advz::precomputable

    source ·
    Expand description

    Implementations of Precomputable for Advz.

    Structs§

    \ No newline at end of file diff --git a/jf_vid/advz/precomputable/struct.PrecomputeData.html b/jf_vid/advz/precomputable/struct.PrecomputeData.html index 60e12305e..a21c27a14 100644 --- a/jf_vid/advz/precomputable/struct.PrecomputeData.html +++ b/jf_vid/advz/precomputable/struct.PrecomputeData.html @@ -1,83 +1,84 @@ -PrecomputeData in jf_vid::advz::precomputable - Rust

    Struct jf_vid::advz::precomputable::PrecomputeData

    source ·
    pub struct PrecomputeData<E>
    where +PrecomputeData in jf_vid::advz::precomputable - Rust

    Struct jf_vid::advz::precomputable::PrecomputeData

    source ·
    pub struct PrecomputeData<E>
    where E: Pairing,
    { /* private fields */ }
    Expand description

    Data that can be precomputed as used in dispersal

    Trait Implementations§

    source§

    impl<E> CanonicalDeserialize for PrecomputeData<E>
    where - E: Pairing,

    source§

    fn deserialize_with_mode<R: Read>( + E: Pairing,

    source§

    fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    source§

    impl<E> CanonicalSerialize for PrecomputeData<E>
    where - E: Pairing,

    source§

    fn serialize_with_mode<W: Write>( +) -> Result<Self, SerializationError>
    where + R: Read,

    source§

    impl<E> CanonicalSerialize for PrecomputeData<E>
    where + E: Pairing,

    source§

    fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<E> Clone for PrecomputeData<E>
    where - E: Pairing + Clone,

    source§

    fn clone(&self) -> PrecomputeData<E>

    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<E> Debug for PrecomputeData<E>
    where - E: Pairing + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E> Deserialize<'de> for PrecomputeData<E>
    where - E: Pairing,

    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<E> Hash for PrecomputeData<E>
    where - E: Pairing,

    source§

    fn hash<__HE>(&self, __state: &mut __HE)
    where - __HE: Hasher,

    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<E> PartialEq for PrecomputeData<E>
    where - E: Pairing + PartialEq,

    source§

    fn eq(&self, other: &PrecomputeData<E>) -> 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<E> Serialize for PrecomputeData<E>
    where - E: Pairing,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E> Valid for PrecomputeData<E>
    where - E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
    where - Self: 'a,

    source§

    impl<E> Eq for PrecomputeData<E>
    where - E: Pairing + Eq,

    source§

    impl<E> StructuralPartialEq for PrecomputeData<E>
    where - E: Pairing,

    Auto Trait Implementations§

    §

    impl<E> Freeze for PrecomputeData<E>

    §

    impl<E> RefUnwindSafe for PrecomputeData<E>
    where - <E as Pairing>::G1Affine: RefUnwindSafe,

    §

    impl<E> Send for PrecomputeData<E>

    §

    impl<E> Sync for PrecomputeData<E>

    §

    impl<E> Unpin for PrecomputeData<E>
    where - <E as Pairing>::G1Affine: Unpin,

    §

    impl<E> UnwindSafe for PrecomputeData<E>
    where - <E as Pairing>::G1Affine: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where - T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where +) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<E> Clone for PrecomputeData<E>
    where + E: Pairing + Clone,

    source§

    fn clone(&self) -> PrecomputeData<E>

    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<E> Debug for PrecomputeData<E>
    where + E: Pairing + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E> Deserialize<'de> for PrecomputeData<E>
    where + E: Pairing,

    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<E> Hash for PrecomputeData<E>
    where + E: Pairing,

    source§

    fn hash<__HE>(&self, __state: &mut __HE)
    where + __HE: Hasher,

    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<E> PartialEq for PrecomputeData<E>
    where + E: Pairing + PartialEq,

    source§

    fn eq(&self, other: &PrecomputeData<E>) -> 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<E> Serialize for PrecomputeData<E>
    where + E: Pairing,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E> Valid for PrecomputeData<E>
    where + E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
    where + Self: 'a,

    source§

    impl<E> Eq for PrecomputeData<E>
    where + E: Pairing + Eq,

    source§

    impl<E> StructuralPartialEq for PrecomputeData<E>
    where + E: Pairing,

    Auto Trait Implementations§

    §

    impl<E> Freeze for PrecomputeData<E>

    §

    impl<E> RefUnwindSafe for PrecomputeData<E>
    where + <E as Pairing>::G1Affine: RefUnwindSafe,

    §

    impl<E> Send for PrecomputeData<E>

    §

    impl<E> Sync for PrecomputeData<E>

    §

    impl<E> Unpin for PrecomputeData<E>
    where + <E as Pairing>::G1Affine: Unpin,

    §

    impl<E> UnwindSafe for PrecomputeData<E>
    where + <E as Pairing>::G1Affine: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where + T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where H: Digest,

    §

    fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where - H: Digest,

    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: Digest,
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    source§

    impl<T> Element for T
    where - T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file diff --git a/jf_vid/advz/struct.AdvzInternal.html b/jf_vid/advz/struct.AdvzInternal.html index 814eda9c0..6e6d58285 100644 --- a/jf_vid/advz/struct.AdvzInternal.html +++ b/jf_vid/advz/struct.AdvzInternal.html @@ -1,17 +1,17 @@ -AdvzInternal in jf_vid::advz - Rust

    Struct jf_vid::advz::AdvzInternal

    source ·
    pub struct AdvzInternal<E, H, T>
    where +AdvzInternal in jf_vid::advz - Rust

    Struct jf_vid::advz::AdvzInternal

    source ·
    pub struct AdvzInternal<E, H, T>
    where E: Pairing, - T: Sync,
    { /* private fields */ }
    Expand description

    The ADVZ VID scheme, a concrete impl for VidScheme. + T: Sync,

    { /* private fields */ }
    Expand description

    The ADVZ VID scheme, a concrete impl for VidScheme. Consider using either Advz or AdvzGPU (enabled via gpu-vid feature).

    • E is any [Pairing]
    • H is a [digest::Digest]-compatible hash function.
    • T is a reference to GPU memory that’s storing SRS
    -

    Implementations§

    source§

    impl<E, H> AdvzInternal<E, H, ()>
    where +

    Implementations§

    source§

    impl<E, H> AdvzInternal<E, H, ()>
    where E: Pairing,

    source

    pub fn new( - num_storage_nodes: u32, - recovery_threshold: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + num_storage_nodes: u32, + recovery_threshold: u32, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

    Return a new instance of Self from (mostly) implementation-independent arguments.

    §Implementation-independent arguments
    @@ -30,10 +30,10 @@
    §Errors
  • TEMPORARY recovery_threshold is not a power of two github issue
  • source

    pub fn with_multiplicity( - num_storage_nodes: u32, - recovery_threshold: u32, - max_multiplicity: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + num_storage_nodes: u32, + recovery_threshold: u32, + max_multiplicity: u32, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

    Like Advz::new except with a max_multiplicity arg.

    max_multiplicity is an implementation-specific optimization arg. Each storage node gets up to max_multiplicity evaluations per @@ -44,125 +44,126 @@

    §Errors
    • TEMPORARY max_multiplicity is not a power of two github issue
    -

    Trait Implementations§

    source§

    impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where - E: Pairing + Clone, - T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where - E: Pairing + Debug, - T: Sync + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where - E: Pairing + PartialEq, - T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> 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<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where + E: Pairing + Clone, + T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where + E: Pairing + Debug, + T: Sync + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where + E: Pairing + PartialEq, + T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> 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<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>( &self, payload: B, - range: Range<usize>, + range: Range<usize>, ) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
    where - B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( + B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( &self, stmt: Statement<'_, Self>, proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>, -) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where +) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>( &self, payload: B, - range: Range<usize>, + range: Range<usize>, ) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where - B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( + B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify( &self, stmt: Statement<'_, Self>, proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>, -) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where +) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type PrecomputeData = PrecomputeData<E>

    Precomputed data that can be (re-)used during disperse computation
    source§

    fn commit_only_precompute<B>( &self, payload: B, ) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where - B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that + B: AsRef<[u8]>,
    Similar to VidScheme::commit_only but returns additional data that can be used as input to disperse_precompute for faster dispersal.
    source§

    fn disperse_precompute<B>( &self, payload: B, data: &Self::PrecomputeData, ) -> VidResult<VidDisperse<Self>>
    where - B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional + B: AsRef<[u8]>,
    Similar to VidScheme::disperse but takes as input additional data for more efficient computation and faster disersal.
    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, - AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where - B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where - B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share( + H: HasherDigest, + T: Sync, + AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where + B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where + B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share( &self, share: &Self::Share, common: &Self::Common, commit: &Self::Commit, -) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client. +) -> VidResult<Result<(), ()>>
    Verify a share. Used by both storage node and retrieval client. Why is return type a nested Result? See https://sled.rs/errors Returns: Read more
    source§

    fn recover_payload( &self, shares: &[Self::Share], common: &Self::Common, -) -> VidResult<Vec<u8>>

    Recover payload from shares. -Do not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a -VidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where - E: Pairing + Eq, - T: Sync + Eq,

    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where +) -> VidResult<Vec<u8>>

    Recover payload from shares. +Do not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a +VidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where + E: Pairing + Eq, + T: Sync + Eq,

    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where E: Pairing, - T: Sync,

    Auto Trait Implementations§

    §

    impl<E, H, T> Freeze for AdvzInternal<E, H, T>
    where - <E as Pairing>::G1Affine: Freeze, - <E as Pairing>::G2Affine: Freeze, - T: Freeze,

    §

    impl<E, H, T> RefUnwindSafe for AdvzInternal<E, H, T>
    where - <E as Pairing>::G1Affine: RefUnwindSafe, - <E as Pairing>::G2Affine: RefUnwindSafe, - T: RefUnwindSafe, - H: RefUnwindSafe,

    §

    impl<E, H, T> Send for AdvzInternal<E, H, T>
    where - T: Send, - H: Send,

    §

    impl<E, H, T> Sync for AdvzInternal<E, H, T>
    where - H: Sync,

    §

    impl<E, H, T> Unpin for AdvzInternal<E, H, T>
    where - <E as Pairing>::G1Affine: Unpin, - <E as Pairing>::G2Affine: Unpin, - T: Unpin, - H: Unpin,

    §

    impl<E, H, T> UnwindSafe for AdvzInternal<E, H, T>
    where - <E as Pairing>::G1Affine: UnwindSafe, - <E as Pairing>::G2Affine: UnwindSafe, - T: UnwindSafe, - H: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + T: Sync,

    Auto Trait Implementations§

    §

    impl<E, H, T> Freeze for AdvzInternal<E, H, T>
    where + <E as Pairing>::G1Affine: Freeze, + <E as Pairing>::G2Affine: Freeze, + T: Freeze,

    §

    impl<E, H, T> RefUnwindSafe for AdvzInternal<E, H, T>
    where + <E as Pairing>::G1Affine: RefUnwindSafe, + <E as Pairing>::G2Affine: RefUnwindSafe, + T: RefUnwindSafe, + H: RefUnwindSafe,

    §

    impl<E, H, T> Send for AdvzInternal<E, H, T>
    where + T: Send, + H: Send,

    §

    impl<E, H, T> Sync for AdvzInternal<E, H, T>
    where + H: Sync,

    §

    impl<E, H, T> Unpin for AdvzInternal<E, H, T>
    where + <E as Pairing>::G1Affine: Unpin, + <E as Pairing>::G2Affine: Unpin, + T: Unpin, + H: Unpin,

    §

    impl<E, H, T> UnwindSafe for AdvzInternal<E, H, T>
    where + <E as Pairing>::G1Affine: UnwindSafe, + <E as Pairing>::G2Affine: UnwindSafe, + T: UnwindSafe, + H: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vid/advz/struct.Common.html b/jf_vid/advz/struct.Common.html index eccfbb629..b5a96f938 100644 --- a/jf_vid/advz/struct.Common.html +++ b/jf_vid/advz/struct.Common.html @@ -1,97 +1,98 @@ -Common in jf_vid::advz - Rust

    Struct jf_vid::advz::Common

    source ·
    pub struct Common<E, H>
    where +Common in jf_vid::advz - Rust

    Struct jf_vid::advz::Common

    source ·
    pub struct Common<E, H>
    where E: Pairing, - H: HasherDigest,
    { /* private fields */ }
    Expand description

    The VidScheme::Common type for Advz.

    + H: HasherDigest,
    { /* private fields */ }
    Expand description

    The VidScheme::Common type for Advz.

    Trait Implementations§

    source§

    impl<E, H> CanonicalDeserialize for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn deserialize_with_mode<R: Read>( + H: HasherDigest,

    source§

    fn deserialize_with_mode<R: Read>( reader: R, compress: Compress, validate: Validate, -) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_compressed_unchecked<R>( +) -> Result<Self, SerializationError>

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_compressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where - R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( +) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where + R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>( reader: R, -) -> Result<Self, SerializationError>
    where - R: Read,

    source§

    impl<E, H> CanonicalSerialize for Common<E, H>
    where +) -> Result<Self, SerializationError>
    where + R: Read,

    source§

    impl<E, H> CanonicalSerialize for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn serialize_with_mode<W: Write>( + H: HasherDigest,

    source§

    fn serialize_with_mode<W: Write>( &self, writer: W, compress: Compress, -) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where - W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<E, H> Clone for Common<E, H>
    where +) -> Result<(), SerializationError>

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where + W: Write,

    §

    fn uncompressed_size(&self) -> usize

    source§

    impl<E, H> Clone for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn clone(&self) -> Self

    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<E, H> Debug for Common<E, H>
    where + H: HasherDigest,

    source§

    fn clone(&self) -> Self

    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<E, H> Debug for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E, H> Deserialize<'de> for Common<E, H>
    where + H: HasherDigest,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E, H> Deserialize<'de> for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    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<E, H> Hash for Common<E, H>
    where + H: HasherDigest,

    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<E, H> Hash for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn hash<__HEH>(&self, __state: &mut __HEH)
    where - __HEH: Hasher,

    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<E, H> PartialEq for Common<E, H>
    where + H: HasherDigest,

    source§

    fn hash<__HEH>(&self, __state: &mut __HEH)
    where + __HEH: Hasher,

    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<E, H> PartialEq for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn eq(&self, other: &Self) -> 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<E, H> Serialize for Common<E, H>
    where + H: HasherDigest,

    source§

    fn eq(&self, other: &Self) -> 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<E, H> Serialize for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E, H> Valid for Common<E, H>
    where + H: HasherDigest,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E, H> Valid for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( - batch: impl Iterator<Item = &'a Self> + Send, -) -> Result<(), SerializationError>
    where - Self: 'a,

    source§

    impl<E, H> Eq for Common<E, H>
    where + H: HasherDigest,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>( + batch: impl Iterator<Item = &'a Self> + Send, +) -> Result<(), SerializationError>
    where + Self: 'a,

    source§

    impl<E, H> Eq for Common<E, H>
    where E: Pairing, - H: HasherDigest,

    Auto Trait Implementations§

    §

    impl<E, H> Freeze for Common<E, H>
    where - <H as HasherDigest>::Bar: Freeze,

    §

    impl<E, H> RefUnwindSafe for Common<E, H>
    where - <H as HasherDigest>::Bar: RefUnwindSafe, - <E as Pairing>::G1Affine: RefUnwindSafe,

    §

    impl<E, H> Send for Common<E, H>

    §

    impl<E, H> Sync for Common<E, H>

    §

    impl<E, H> Unpin for Common<E, H>
    where - <H as HasherDigest>::Bar: Unpin, - <E as Pairing>::G1Affine: Unpin,

    §

    impl<E, H> UnwindSafe for Common<E, H>
    where - <H as HasherDigest>::Bar: UnwindSafe, - <E as Pairing>::G1Affine: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where - T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: HasherDigest,

    Auto Trait Implementations§

    §

    impl<E, H> Freeze for Common<E, H>
    where + <H as HasherDigest>::Bar: Freeze,

    §

    impl<E, H> RefUnwindSafe for Common<E, H>
    where + <H as HasherDigest>::Bar: RefUnwindSafe, + <E as Pairing>::G1Affine: RefUnwindSafe,

    §

    impl<E, H> Send for Common<E, H>

    §

    impl<E, H> Sync for Common<E, H>

    §

    impl<E, H> Unpin for Common<E, H>
    where + <H as HasherDigest>::Bar: Unpin, + <E as Pairing>::G1Affine: Unpin,

    §

    impl<E, H> UnwindSafe for Common<E, H>
    where + <H as HasherDigest>::Bar: UnwindSafe, + <E as Pairing>::G1Affine: UnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> CanonicalSerializeHashExt for T
    where + T: CanonicalSerialize,

    §

    fn hash<H>(&self) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where H: Digest,

    §

    fn hash_uncompressed<H>( &self, -) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where - H: Digest,

    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +) -> GenericArray<u8, <H as OutputSizeUser>::OutputSize>
    where + H: Digest,
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    source§

    impl<T> Element for T
    where - T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file diff --git a/jf_vid/advz/struct.Share.html b/jf_vid/advz/struct.Share.html index 378406ba9..d975b026e 100644 --- a/jf_vid/advz/struct.Share.html +++ b/jf_vid/advz/struct.Share.html @@ -1,69 +1,70 @@ -Share in jf_vid::advz - Rust

    Struct jf_vid::advz::Share

    source ·
    pub struct Share<E, H>
    where +Share in jf_vid::advz - Rust

    Struct jf_vid::advz::Share

    source ·
    pub struct Share<E, H>
    where E: Pairing, - H: HasherDigest,
    { /* private fields */ }
    Expand description

    The VidScheme::Share type for Advz.

    -

    Trait Implementations§

    source§

    impl<E, H> Clone for Share<E, H>
    where + H: HasherDigest,
    { /* private fields */ }

    Expand description

    The VidScheme::Share type for Advz.

    +

    Trait Implementations§

    source§

    impl<E, H> Clone for Share<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn clone(&self) -> Self

    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<E, H> Debug for Share<E, H>
    where + H: HasherDigest,

    source§

    fn clone(&self) -> Self

    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<E, H> Debug for Share<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E, H> Deserialize<'de> for Share<E, H>
    where + H: HasherDigest,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, E, H> Deserialize<'de> for Share<E, H>
    where E: Pairing, - H: HasherDigest, - Output<H>: Serialize + for<'a> Deserialize<'a>,

    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<E, H> Hash for Share<E, H>
    where + H: HasherDigest, + Output<H>: Serialize + for<'a> Deserialize<'a>,

    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<E, H> Hash for Share<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn hash<__HEH>(&self, __state: &mut __HEH)
    where - __HEH: Hasher,

    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<E, H> PartialEq for Share<E, H>
    where + H: HasherDigest,

    source§

    fn hash<__HEH>(&self, __state: &mut __HEH)
    where + __HEH: Hasher,

    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<E, H> PartialEq for Share<E, H>
    where E: Pairing, - H: HasherDigest,

    source§

    fn eq(&self, other: &Self) -> 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<E, H> Serialize for Share<E, H>
    where + H: HasherDigest,

    source§

    fn eq(&self, other: &Self) -> 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<E, H> Serialize for Share<E, H>
    where E: Pairing, - H: HasherDigest, - Output<H>: Serialize + for<'a> Deserialize<'a>,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E, H> Eq for Share<E, H>
    where + H: HasherDigest, + Output<H>: Serialize + for<'a> Deserialize<'a>,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<E, H> Eq for Share<E, H>
    where E: Pairing, - H: HasherDigest,

    Auto Trait Implementations§

    §

    impl<E, H> Freeze for Share<E, H>

    §

    impl<E, H> RefUnwindSafe for Share<E, H>
    where - <E as Pairing>::G1Affine: RefUnwindSafe, - <H as HasherDigest>::Bar: RefUnwindSafe, - <E as Pairing>::ScalarField: RefUnwindSafe,

    §

    impl<E, H> Send for Share<E, H>

    §

    impl<E, H> Sync for Share<E, H>

    §

    impl<E, H> Unpin for Share<E, H>
    where - <E as Pairing>::G1Affine: Unpin, - <H as HasherDigest>::Bar: Unpin, - <E as Pairing>::ScalarField: Unpin,

    §

    impl<E, H> UnwindSafe for Share<E, H>
    where - <E as Pairing>::G1Affine: UnwindSafe, - <H as HasherDigest>::Bar: UnwindSafe + RefUnwindSafe, - <E as Pairing>::ScalarField: UnwindSafe + RefUnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot + H: HasherDigest,

    Auto Trait Implementations§

    §

    impl<E, H> Freeze for Share<E, H>

    §

    impl<E, H> RefUnwindSafe for Share<E, H>
    where + <E as Pairing>::G1Affine: RefUnwindSafe, + <H as HasherDigest>::Bar: RefUnwindSafe, + <E as Pairing>::ScalarField: RefUnwindSafe,

    §

    impl<E, H> Send for Share<E, H>

    §

    impl<E, H> Sync for Share<E, H>

    §

    impl<E, H> Unpin for Share<E, H>
    where + <E as Pairing>::G1Affine: Unpin, + <H as HasherDigest>::Bar: Unpin, + <E as Pairing>::ScalarField: Unpin,

    §

    impl<E, H> UnwindSafe for Share<E, H>
    where + <E as Pairing>::G1Affine: UnwindSafe, + <H as HasherDigest>::Bar: UnwindSafe + RefUnwindSafe, + <E as Pairing>::ScalarField: UnwindSafe + RefUnwindSafe,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    source§

    impl<T> Element for T
    where - T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file diff --git a/jf_vid/advz/trait.MaybeGPU.html b/jf_vid/advz/trait.MaybeGPU.html index 6bfb01290..f66517b6d 100644 --- a/jf_vid/advz/trait.MaybeGPU.html +++ b/jf_vid/advz/trait.MaybeGPU.html @@ -1,15 +1,15 @@ -MaybeGPU in jf_vid::advz - Rust

    Trait jf_vid::advz::MaybeGPU

    source ·
    pub trait MaybeGPU<E: Pairing> {
    +MaybeGPU in jf_vid::advz - Rust

    Trait jf_vid::advz::MaybeGPU

    source ·
    pub trait MaybeGPU<E: Pairing> {
         // Required method
         fn kzg_batch_commit(
             &mut self,
             polys: &[DensePolynomial<E::ScalarField>],
    -    ) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>;
    +    ) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>;
     }
    Expand description

    A helper trait that cover API that maybe instantiated using GPU code in specialized implementation for concrete types

    Required Methods§

    source

    fn kzg_batch_commit( &mut self, polys: &[DensePolynomial<E::ScalarField>], -) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>

    kzg batch commit TODO: (alex) it’s unfortnate that we are forced to use &mut self which propagate out to VidScheme::commit_only/disperse(&mut self) This should be fixed once ICICLE improve their HostOrDeviceSlice, and diff --git a/jf_vid/advz/type.Advz.html b/jf_vid/advz/type.Advz.html index 136d4549e..84ca66b38 100644 --- a/jf_vid/advz/type.Advz.html +++ b/jf_vid/advz/type.Advz.html @@ -1,9 +1,9 @@ -Advz in jf_vid::advz - Rust

    Type Alias jf_vid::advz::Advz

    source ·
    pub type Advz<E, H> = AdvzInternal<E, H, ()>;
    Expand description

    Normal Advz VID that’s only using CPU

    +Advz in jf_vid::advz - Rust

    Type Alias jf_vid::advz::Advz

    source ·
    pub type Advz<E, H> = AdvzInternal<E, H, ()>;
    Expand description

    Normal Advz VID that’s only using CPU

    Aliased Type§

    struct Advz<E, H> { /* private fields */ }

    Implementations§

    source§

    impl<E, H> Advz<E, H>
    where E: Pairing,

    source

    pub fn new( - num_storage_nodes: u32, - recovery_threshold: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + num_storage_nodes: u32, + recovery_threshold: u32, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

    Return a new instance of Self from (mostly) implementation-independent arguments.

    §Implementation-independent arguments
    @@ -22,10 +22,10 @@
    §Errors
  • TEMPORARY recovery_threshold is not a power of two github issue
  • source

    pub fn with_multiplicity( - num_storage_nodes: u32, - recovery_threshold: u32, - max_multiplicity: u32, - srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, + num_storage_nodes: u32, + recovery_threshold: u32, + max_multiplicity: u32, + srs: impl Borrow<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::SRS>, ) -> VidResult<Self>

    Like Advz::new except with a max_multiplicity arg.

    max_multiplicity is an implementation-specific optimization arg. Each storage node gets up to max_multiplicity evaluations per @@ -40,7 +40,7 @@

    §Errors
    E: Pairing,
    source§

    fn kzg_batch_commit( &mut self, polys: &[DensePolynomial<E::ScalarField>], -) -> VidResult<Vec<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Commitment>>

    kzg batch commit TODO: (alex) it’s unfortnate that we are forced to use &mut self which propagate out to VidScheme::commit_only/disperse(&mut self) This should be fixed once ICICLE improve their HostOrDeviceSlice, and diff --git a/jf_vid/all.html b/jf_vid/all.html index 9255dfa44..dd0445d90 100644 --- a/jf_vid/all.html +++ b/jf_vid/all.html @@ -1 +1 @@ -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/jf_vid/enum.VidError.html b/jf_vid/enum.VidError.html index fe7738097..8a70e3ab2 100644 --- a/jf_vid/enum.VidError.html +++ b/jf_vid/enum.VidError.html @@ -1,36 +1,36 @@ -VidError in jf_vid - Rust

    Enum jf_vid::VidError

    source ·
    pub enum VidError {
    -    Argument(String),
    -    Internal(Error),
    +VidError in jf_vid - Rust

    Enum jf_vid::VidError

    source ·
    pub enum VidError {
    +    Argument(String),
    +    Internal(Error),
     }
    Expand description

    The error type for VidScheme methods.

    -

    Variants§

    §

    Argument(String)

    invalid args: {0}

    -
    §

    Internal(Error)

    internal error: {0}

    -

    Trait Implementations§

    source§

    impl Debug for VidError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for VidError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for VidError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where - T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method +

    Variants§

    §

    Argument(String)

    invalid args: {0}

    +
    §

    Internal(Error)

    internal error: {0}

    +

    Trait Implementations§

    source§

    impl Debug for VidError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for VidError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for VidError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where + T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +receivers.
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be -further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be +further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vid/index.html b/jf_vid/index.html index be77aa3a6..f52b1dd17 100644 --- a/jf_vid/index.html +++ b/jf_vid/index.html @@ -1,7 +1,7 @@ -jf_vid - Rust

    Crate jf_vid

    source ·
    Expand description

    Trait and implementation for a Verifiable Information Retrieval (VID). +jf_vid - Rust

    Crate jf_vid

    source ·
    Expand description

    Trait and implementation for a Verifiable Information Retrieval (VID). See https://arxiv.org/abs/2111.12323 section 1.3–1.4 for intro to VID semantics.

    Modules§

    • Implementation of Verifiable Information Dispersal (VID) from https://eprint.iacr.org/2021/1500.
    • Trait for additional functionality in Verifiable Information Retrieval (VID) to make and verify a proof of correctness of an arbitrary sub-slice of data from a payload.
    • Trait for additional functionality in Verifiable Information Retrieval (VID) for precomputation of specific data that allows for calling -methods using the data to save computation for the callee.

    Structs§

    • Convenience struct to aggregate disperse data.

    Enums§

    • The error type for VidScheme methods.

    Traits§

    • VID: Verifiable Information Dispersal

    Type Aliases§

    \ No newline at end of file +methods using the data to save computation for the callee.

    Structs§

    • Convenience struct to aggregate disperse data.

    Enums§

    • The error type for VidScheme methods.

    Traits§

    • VID: Verifiable Information Dispersal

    Type Aliases§

    \ No newline at end of file diff --git a/jf_vid/payload_prover/index.html b/jf_vid/payload_prover/index.html index 87f1eb7ad..e04e14c41 100644 --- a/jf_vid/payload_prover/index.html +++ b/jf_vid/payload_prover/index.html @@ -1,4 +1,4 @@ -jf_vid::payload_prover - Rust

    Module jf_vid::payload_prover

    source ·
    Expand description

    Trait for additional functionality in Verifiable Information Retrieval (VID) +jf_vid::payload_prover - Rust

    Module jf_vid::payload_prover

    source ·
    Expand description

    Trait for additional functionality in Verifiable Information Retrieval (VID) to make and verify a proof of correctness of an arbitrary sub-slice of data from a payload.

    Structs§

    Fields§

    §payload_subslice: &'a [u8]

    The subslice payload[range.start..range.end] from a call to PayloadProver::payload_proof.

    -
    §range: Range<usize>

    The range used to make Self::payload_subslice.

    +
    §range: Range<usize>

    The range used to make Self::payload_subslice.

    §commit: &'a V::Commit

    VID commitment against which the proof will be checked.

    §common: &'a V::Common

    VID data against which the proof will be checked.

    -

    Trait Implementations§

    source§

    impl<'a, V> Clone for Statement<'a, V>
    where - V: VidScheme,

    source§

    fn clone(&self) -> Self

    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

    Auto Trait Implementations§

    §

    impl<'a, V> Freeze for Statement<'a, V>
    where - V: ?Sized,

    §

    impl<'a, V> RefUnwindSafe for Statement<'a, V>
    where - <V as VidScheme>::Commit: RefUnwindSafe, - <V as VidScheme>::Common: RefUnwindSafe, - V: ?Sized,

    §

    impl<'a, V> Send for Statement<'a, V>
    where - V: ?Sized,

    §

    impl<'a, V> Sync for Statement<'a, V>
    where - V: ?Sized,

    §

    impl<'a, V> Unpin for Statement<'a, V>
    where - V: ?Sized,

    §

    impl<'a, V> UnwindSafe for Statement<'a, V>
    where - <V as VidScheme>::Commit: RefUnwindSafe, - <V as VidScheme>::Common: RefUnwindSafe, - V: ?Sized,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<'a, V> Clone for Statement<'a, V>
    where + V: VidScheme,

    source§

    fn clone(&self) -> Self

    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

    Auto Trait Implementations§

    §

    impl<'a, V> Freeze for Statement<'a, V>
    where + V: ?Sized,

    §

    impl<'a, V> RefUnwindSafe for Statement<'a, V>
    where + <V as VidScheme>::Commit: RefUnwindSafe, + <V as VidScheme>::Common: RefUnwindSafe, + V: ?Sized,

    §

    impl<'a, V> Send for Statement<'a, V>
    where + V: ?Sized,

    §

    impl<'a, V> Sync for Statement<'a, V>
    where + V: ?Sized,

    §

    impl<'a, V> Unpin for Statement<'a, V>
    where + V: ?Sized,

    §

    impl<'a, V> UnwindSafe for Statement<'a, V>
    where + <V as VidScheme>::Commit: RefUnwindSafe, + <V as VidScheme>::Common: RefUnwindSafe, + V: ?Sized,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vid/payload_prover/trait.PayloadProver.html b/jf_vid/payload_prover/trait.PayloadProver.html index 51bcb223c..f9189a551 100644 --- a/jf_vid/payload_prover/trait.PayloadProver.html +++ b/jf_vid/payload_prover/trait.PayloadProver.html @@ -1,20 +1,20 @@ -PayloadProver in jf_vid::payload_prover - Rust

    Trait jf_vid::payload_prover::PayloadProver

    source ·
    pub trait PayloadProver<PROOF>: VidScheme
    where - PROOF: Clone + Debug + Eq + PartialEq + Serialize + DeserializeOwned,
    { +PayloadProver in jf_vid::payload_prover - Rust

    Trait jf_vid::payload_prover::PayloadProver

    source ·
    pub trait PayloadProver<PROOF>: VidScheme
    where + PROOF: Clone + Debug + Eq + PartialEq + Serialize + DeserializeOwned,
    { // Required methods fn payload_proof<B>( &self, payload: B, - range: Range<usize>, + range: Range<usize>, ) -> VidResult<PROOF> - where B: AsRef<[u8]>; + where B: AsRef<[u8]>; fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &PROOF, - ) -> VidResult<Result<(), ()>>; + proof: &PROOF, + ) -> VidResult<Result<(), ()>>; }
    Expand description

    Payload proof functionality for VidScheme.

    -

    Required Methods§

    source

    fn payload_proof<B>(&self, payload: B, range: Range<usize>) -> VidResult<PROOF>
    where - B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data.

    +

    Required Methods§

    source

    fn payload_proof<B>(&self, payload: B, range: Range<usize>) -> VidResult<PROOF>
    where + B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data.

    §Arguments
    • payload: a (possibly large) binary payload.
    • @@ -31,19 +31,19 @@
    source

    fn payload_verify( &self, stmt: Statement<'_, Self>, - proof: &PROOF, -) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof.

    + proof: &PROOF, +) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof.

    §Arguments
    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    \ No newline at end of file diff --git a/jf_vid/precomputable/index.html b/jf_vid/precomputable/index.html index 351c924a7..7c6b90c0a 100644 --- a/jf_vid/precomputable/index.html +++ b/jf_vid/precomputable/index.html @@ -1,4 +1,4 @@ -jf_vid::precomputable - Rust

    Module jf_vid::precomputable

    source ·
    Expand description

    Trait for additional functionality in Verifiable Information Retrieval (VID) +jf_vid::precomputable - Rust

    Module jf_vid::precomputable

    source ·
    Expand description

    Trait for additional functionality in Verifiable Information Retrieval (VID) for precomputation of specific data that allows for calling methods using the data to save computation for the callee.

    Traits§

    \ No newline at end of file diff --git a/jf_vid/precomputable/trait.Precomputable.html b/jf_vid/precomputable/trait.Precomputable.html index dcdce699c..50b1618e0 100644 --- a/jf_vid/precomputable/trait.Precomputable.html +++ b/jf_vid/precomputable/trait.Precomputable.html @@ -1,35 +1,35 @@ -Precomputable in jf_vid::precomputable - Rust

    Trait jf_vid::precomputable::Precomputable

    source ·
    pub trait Precomputable: VidScheme {
    -    type PrecomputeData: Clone + Debug + Eq + PartialEq + Hash + Sync + Serialize + DeserializeOwned;
    +Precomputable in jf_vid::precomputable - Rust

    Trait jf_vid::precomputable::Precomputable

    source ·
    pub trait Precomputable: VidScheme {
    +    type PrecomputeData: Clone + Debug + Eq + PartialEq + Hash + Sync + Serialize + DeserializeOwned;
     
         // Required methods
         fn commit_only_precompute<B>(
             &self,
             payload: B,
         ) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    -       where B: AsRef<[u8]>;
    +       where B: AsRef<[u8]>;
         fn disperse_precompute<B>(
             &self,
             payload: B,
             data: &Self::PrecomputeData,
         ) -> VidResult<VidDisperse<Self>>
    -       where B: AsRef<[u8]>;
    +       where B: AsRef<[u8]>;
     }
    Expand description

    Allow for precomputation of certain data for VidScheme.

    -

    Required Associated Types§

    source

    type PrecomputeData: Clone + Debug + Eq + PartialEq + Hash + Sync + Serialize + DeserializeOwned

    Precomputed data that can be (re-)used during disperse computation

    +

    Required Associated Types§

    source

    type PrecomputeData: Clone + Debug + Eq + PartialEq + Hash + Sync + Serialize + DeserializeOwned

    Precomputed data that can be (re-)used during disperse computation

    Required Methods§

    source

    fn commit_only_precompute<B>( &self, payload: B, ) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where - B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that + B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that can be used as input to disperse_precompute for faster dispersal.

    source

    fn disperse_precompute<B>( &self, payload: B, data: &Self::PrecomputeData, ) -> VidResult<VidDisperse<Self>>
    where - B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional + B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional data for more efficient computation and faster disersal.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, + H: HasherDigest, + T: Sync, AdvzInternal<E, H, T>: MaybeGPU<E>,

    \ No newline at end of file diff --git a/jf_vid/struct.VidDisperse.html b/jf_vid/struct.VidDisperse.html index 7b4ce63f2..aecb832e9 100644 --- a/jf_vid/struct.VidDisperse.html +++ b/jf_vid/struct.VidDisperse.html @@ -1,84 +1,85 @@ -VidDisperse in jf_vid - Rust

    Struct jf_vid::VidDisperse

    source ·
    pub struct VidDisperse<V: VidScheme + ?Sized> {
    -    pub shares: Vec<V::Share>,
    +VidDisperse in jf_vid - Rust

    Struct jf_vid::VidDisperse

    source ·
    pub struct VidDisperse<V: VidScheme + ?Sized> {
    +    pub shares: Vec<V::Share>,
         pub common: V::Common,
         pub commit: V::Commit,
     }
    Expand description

    Convenience struct to aggregate disperse data.

    Return type for VidScheme::disperse.

    §Why the ?Sized bound?

    Rust hates you: https://stackoverflow.com/a/54465962

    -

    Fields§

    §shares: Vec<V::Share>

    VID disperse shares to send to the storage nodes.

    +

    Fields§

    §shares: Vec<V::Share>

    VID disperse shares to send to the storage nodes.

    §common: V::Common

    VID common data to send to all storage nodes.

    §commit: V::Commit

    VID payload commitment.

    -

    Trait Implementations§

    source§

    impl<V: VidScheme + ?Sized> Clone for VidDisperse<V>

    source§

    fn clone(&self) -> Self

    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<V: VidScheme + ?Sized> Debug for VidDisperse<V>
    where - V::Share: Debug, - V::Common: Debug, - V::Commit: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, V: VidScheme + ?Sized> Deserialize<'de> for VidDisperse<V>
    where - V::Share: Serialize + for<'a> Deserialize<'a>, - V::Common: Serialize + for<'a> Deserialize<'a>, - V::Commit: Serialize + for<'a> Deserialize<'a>,

    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<V: VidScheme + ?Sized> Hash for VidDisperse<V>
    where - V::Share: Hash, - V::Common: Hash, - V::Commit: Hash,

    source§

    fn hash<__HV>(&self, __state: &mut __HV)
    where - __HV: Hasher,

    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<V: VidScheme + ?Sized> PartialEq for VidDisperse<V>

    source§

    fn eq(&self, other: &Self) -> 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<V: VidScheme + ?Sized> Serialize for VidDisperse<V>
    where - V::Share: Serialize + for<'a> Deserialize<'a>, - V::Common: Serialize + for<'a> Deserialize<'a>, - V::Commit: Serialize + for<'a> Deserialize<'a>,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where - __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<V: VidScheme + ?Sized> Eq for VidDisperse<V>

    Auto Trait Implementations§

    §

    impl<V> Freeze for VidDisperse<V>
    where - <V as VidScheme>::Common: Freeze, - <V as VidScheme>::Commit: Freeze, - V: ?Sized,

    §

    impl<V> RefUnwindSafe for VidDisperse<V>

    §

    impl<V> Send for VidDisperse<V>
    where - <V as VidScheme>::Common: Send, - <V as VidScheme>::Commit: Send, - <V as VidScheme>::Share: Send, - V: ?Sized,

    §

    impl<V> Sync for VidDisperse<V>
    where - V: ?Sized,

    §

    impl<V> Unpin for VidDisperse<V>
    where - <V as VidScheme>::Common: Unpin, - <V as VidScheme>::Commit: Unpin, - <V as VidScheme>::Share: Unpin, - V: ?Sized,

    §

    impl<V> UnwindSafe for VidDisperse<V>
    where - <V as VidScheme>::Common: UnwindSafe, - <V as VidScheme>::Commit: UnwindSafe, - <V as VidScheme>::Share: UnwindSafe, - V: ?Sized,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    §

    impl<T> Downcast for T
    where - T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can -then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be -further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot -generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +

    Trait Implementations§

    source§

    impl<V: VidScheme + ?Sized> Clone for VidDisperse<V>

    source§

    fn clone(&self) -> Self

    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<V: VidScheme + ?Sized> Debug for VidDisperse<V>
    where + V::Share: Debug, + V::Common: Debug, + V::Commit: Debug,

    source§

    fn fmt(&self, __f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl<'de, V: VidScheme + ?Sized> Deserialize<'de> for VidDisperse<V>
    where + V::Share: Serialize + for<'a> Deserialize<'a>, + V::Common: Serialize + for<'a> Deserialize<'a>, + V::Commit: Serialize + for<'a> Deserialize<'a>,

    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<V: VidScheme + ?Sized> Hash for VidDisperse<V>
    where + V::Share: Hash, + V::Common: Hash, + V::Commit: Hash,

    source§

    fn hash<__HV>(&self, __state: &mut __HV)
    where + __HV: Hasher,

    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<V: VidScheme + ?Sized> PartialEq for VidDisperse<V>

    source§

    fn eq(&self, other: &Self) -> 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<V: VidScheme + ?Sized> Serialize for VidDisperse<V>
    where + V::Share: Serialize + for<'a> Deserialize<'a>, + V::Common: Serialize + for<'a> Deserialize<'a>, + V::Commit: Serialize + for<'a> Deserialize<'a>,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where + __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    source§

    impl<V: VidScheme + ?Sized> Eq for VidDisperse<V>

    Auto Trait Implementations§

    §

    impl<V> Freeze for VidDisperse<V>
    where + <V as VidScheme>::Common: Freeze, + <V as VidScheme>::Commit: Freeze, + V: ?Sized,

    §

    impl<V> RefUnwindSafe for VidDisperse<V>

    §

    impl<V> Send for VidDisperse<V>
    where + <V as VidScheme>::Common: Send, + <V as VidScheme>::Commit: Send, + <V as VidScheme>::Share: Send, + V: ?Sized,

    §

    impl<V> Sync for VidDisperse<V>
    where + V: ?Sized,

    §

    impl<V> Unpin for VidDisperse<V>
    where + <V as VidScheme>::Common: Unpin, + <V as VidScheme>::Commit: Unpin, + <V as VidScheme>::Share: Unpin, + V: ?Sized,

    §

    impl<V> UnwindSafe for VidDisperse<V>
    where + <V as VidScheme>::Common: UnwindSafe, + <V as VidScheme>::Commit: UnwindSafe, + <V as VidScheme>::Share: UnwindSafe, + V: ?Sized,

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> CloneToUninit for T
    where + T: Clone,

    source§

    default unsafe fn clone_to_uninit(&self, dst: *mut T)

    🔬This is a nightly-only experimental API. (clone_to_uninit)
    Performs copy-assignment from self to dst. Read more
    §

    impl<T> Downcast for T
    where + T: Any,

    §

    fn into_any(self: Box<T>) -> Box<dyn Any>

    Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can +then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
    §

    fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

    Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be +further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
    §

    fn as_any(&self) -> &(dyn Any + 'static)

    Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot +generate &Any’s vtable from &Trait’s.
    §

    fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

    Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
    §

    impl<T> DowncastSync for T
    where - T: Any + Send + Sync,

    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be + T: Any + Send + Sync,
    §

    fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

    Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
    source§

    impl<T> DynClone for T
    where - T: Clone,

    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where - Q: Eq + ?Sized, - K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + T: Clone,
    source§

    fn __clone_box(&self, _: Private) -> *mut ()

    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    §

    impl<Q, K> Equivalent<K> for Q
    where + Q: Eq + ?Sized, + K: Borrow<Q> + ?Sized,

    §

    fn equivalent(&self, key: &K) -> bool

    Checks if this value is equivalent to the given key. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where - T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where - V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where - T: for<'de> Deserialize<'de>,

    source§

    impl<T> Element for T
    where - T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file +otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToOwned for T
    where + T: Clone,

    §

    type Owned = T

    The resulting type after obtaining ownership.
    source§

    fn to_owned(&self) -> T

    Creates owned data from borrowed data, usually by cloning. Read more
    source§

    fn clone_into(&self, target: &mut T)

    Uses borrowed data to replace owned data, usually by cloning. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where + V: MultiLane<T>,

    §

    fn vzip(self) -> V

    source§

    impl<T> DeserializeOwned for T
    where + T: for<'de> Deserialize<'de>,

    §

    impl<T> Element for T
    where + T: Clone + Eq + PartialEq + Hash,

    \ No newline at end of file diff --git a/jf_vid/trait.VidScheme.html b/jf_vid/trait.VidScheme.html index 056c9feff..8f001fdd4 100644 --- a/jf_vid/trait.VidScheme.html +++ b/jf_vid/trait.VidScheme.html @@ -1,45 +1,45 @@ -VidScheme in jf_vid - Rust

    Trait jf_vid::VidScheme

    source ·
    pub trait VidScheme {
    -    type Commit: Clone + Debug + Display + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync + for<'a> TryFrom<&'a TaggedBase64> + Into<TaggedBase64>;
    -    type Share: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync;
    -    type Common: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync;
    +VidScheme in jf_vid - Rust

    Trait jf_vid::VidScheme

    source ·
    pub trait VidScheme {
    +    type Commit: Clone + Debug + Display + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync + for<'a> TryFrom<&'a TaggedBase64> + Into<TaggedBase64>;
    +    type Share: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync;
    +    type Common: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync;
     
         // Required methods
         fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    -       where B: AsRef<[u8]>;
    +       where B: AsRef<[u8]>;
         fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    -       where B: AsRef<[u8]>;
    +       where B: AsRef<[u8]>;
         fn verify_share(
             &self,
             share: &Self::Share,
             common: &Self::Common,
             commit: &Self::Commit,
    -    ) -> VidResult<Result<(), ()>>;
    +    ) -> VidResult<Result<(), ()>>;
         fn recover_payload(
             &self,
             shares: &[Self::Share],
             common: &Self::Common,
    -    ) -> VidResult<Vec<u8>>;
    +    ) -> VidResult<Vec<u8>>;
         fn is_consistent(
             commit: &Self::Commit,
             common: &Self::Common,
    -    ) -> VidResult<()>;
    -    fn get_payload_byte_len(common: &Self::Common) -> u32;
    -    fn get_num_storage_nodes(common: &Self::Common) -> u32;
    -    fn get_multiplicity(common: &Self::Common) -> u32;
    +    ) -> VidResult<()>;
    +    fn get_payload_byte_len(common: &Self::Common) -> u32;
    +    fn get_num_storage_nodes(common: &Self::Common) -> u32;
    +    fn get_multiplicity(common: &Self::Common) -> u32;
     }
    Expand description

    VID: Verifiable Information Dispersal

    -

    Required Associated Types§

    source

    type Commit: Clone + Debug + Display + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync + for<'a> TryFrom<&'a TaggedBase64> + Into<TaggedBase64>

    Payload commitment.

    -
    source

    type Share: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync

    Share-specific data sent to a storage node.

    -
    source

    type Common: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync

    Common data sent to all storage nodes.

    +

    Required Associated Types§

    source

    type Commit: Clone + Debug + Display + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync + for<'a> TryFrom<&'a TaggedBase64> + Into<TaggedBase64>

    Payload commitment.

    +
    source

    type Share: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync

    Share-specific data sent to a storage node.

    +
    source

    type Common: Clone + Debug + DeserializeOwned + Eq + PartialEq + Hash + Serialize + Sync

    Common data sent to all storage nodes.

    Required Methods§

    source

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where - B: AsRef<[u8]>,

    Compute a payload commitment

    + B: AsRef<[u8]>,

    Compute a payload commitment

    source

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where - B: AsRef<[u8]>,

    Compute shares to send to the storage nodes

    + B: AsRef<[u8]>,

    Compute shares to send to the storage nodes

    source

    fn verify_share( &self, share: &Self::Share, common: &Self::Common, commit: &Self::Commit, -) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client. +) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client. Why is return type a nested Result? See https://sled.rs/errors Returns:

      @@ -51,17 +51,17 @@ &self, shares: &[Self::Share], common: &Self::Common, -) -> VidResult<Vec<u8>>

      Recover payload from shares. +) -> VidResult<Vec<u8>>

      Recover payload from shares. Do not verify shares or check recovered payload against anything.

      -
    source

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a +

    source

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a VidScheme::Commit.

    TODO conform to nested result pattern like VidScheme::verify_share. Unfortunately, VidResult<()> is more user-friently.

    -
    source

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.

    -
    source

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.

    -
    source

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where +

    source

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.

    +
    source

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.

    +
    source

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where E: Pairing, - H: HasherDigest, - T: Sync, - AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    §

    type Share = Share<E, H>

    §

    type Common = Common<E, H>

    \ No newline at end of file + H: HasherDigest, + T: Sync, + AdvzInternal<E, H, T>: MaybeGPU<E>,
    §

    type Commit = HasherNode<H>

    §

    type Share = Share<E, H>

    §

    type Common = Common<E, H>

    \ No newline at end of file diff --git a/jf_vid/type.VidResult.html b/jf_vid/type.VidResult.html index fc4f66fd0..aba25c8bf 100644 --- a/jf_vid/type.VidResult.html +++ b/jf_vid/type.VidResult.html @@ -1,4 +1,4 @@ -VidResult in jf_vid - Rust

    Type Alias jf_vid::VidResult

    source ·
    pub type VidResult<T> = Result<T, VidError>;
    Expand description

    Convenience Result wrapper for VidError.

    +VidResult in jf_vid - Rust

    Type Alias jf_vid::VidResult

    source ·
    pub type VidResult<T> = Result<T, VidError>;
    Expand description

    Convenience Result wrapper for VidError.

    Aliased Type§

    enum VidResult<T> {
         Ok(T),
         Err(VidError),
    diff --git a/jf_vrf/all.html b/jf_vrf/all.html
    index f76ed1859..944710fee 100644
    --- a/jf_vrf/all.html
    +++ b/jf_vrf/all.html
    @@ -1 +1 @@
    -List of all items in this crate
    \ No newline at end of file +List of all items in this crate
    \ No newline at end of file diff --git a/jf_vrf/blsvrf/enum.BLSVRFCipherSuite.html b/jf_vrf/blsvrf/enum.BLSVRFCipherSuite.html index 718009bbd..cb49d078f 100644 --- a/jf_vrf/blsvrf/enum.BLSVRFCipherSuite.html +++ b/jf_vrf/blsvrf/enum.BLSVRFCipherSuite.html @@ -1,25 +1,25 @@ -BLSVRFCipherSuite in jf_vrf::blsvrf - Rust

    Enum jf_vrf::blsvrf::BLSVRFCipherSuite

    source ·
    pub enum BLSVRFCipherSuite {
    +BLSVRFCipherSuite in jf_vrf::blsvrf - Rust

    Enum jf_vrf::blsvrf::BLSVRFCipherSuite

    source ·
    pub enum BLSVRFCipherSuite {
         VRF_BLS_12_381_SHA256,
         VRF_BLS_12_381_SHA512,
     }
    Expand description

    Supported Cipher Suites for BLS VRF.

    Variants§

    §

    VRF_BLS_12_381_SHA256

    using blst library and VRF output from SHA256 hashing

    §

    VRF_BLS_12_381_SHA512

    using blst library and VRF output from SHA512 hashing

    -

    Trait Implementations§

    source§

    impl Debug for BLSVRFCipherSuite

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +

    Trait Implementations§

    source§

    impl Debug for BLSVRFCipherSuite

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vrf/blsvrf/index.html b/jf_vrf/blsvrf/index.html index 8cfe34d26..e4a70401b 100644 --- a/jf_vrf/blsvrf/index.html +++ b/jf_vrf/blsvrf/index.html @@ -1,3 +1,3 @@ -jf_vrf::blsvrf - Rust

    Module jf_vrf::blsvrf

    source ·
    Expand description

    BLS signature based VRF

    +jf_vrf::blsvrf - Rust

    Module jf_vrf::blsvrf

    source ·
    Expand description

    BLS signature based VRF

    Structs§

    Enums§

    \ No newline at end of file diff --git a/jf_vrf/blsvrf/struct.BLSVRFError.html b/jf_vrf/blsvrf/struct.BLSVRFError.html index 88b2ad113..eadd59e05 100644 --- a/jf_vrf/blsvrf/struct.BLSVRFError.html +++ b/jf_vrf/blsvrf/struct.BLSVRFError.html @@ -1,24 +1,24 @@ -BLSVRFError in jf_vrf::blsvrf - Rust

    Struct jf_vrf::blsvrf::BLSVRFError

    source ·
    pub struct BLSVRFError(/* private fields */);
    Expand description

    VRF Error: {0}

    -

    Trait Implementations§

    source§

    impl Debug for BLSVRFError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for BLSVRFError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for BLSVRFError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where - T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method +BLSVRFError in jf_vrf::blsvrf - Rust

    Struct jf_vrf::blsvrf::BLSVRFError

    source ·
    pub struct BLSVRFError(/* private fields */);
    Expand description

    VRF Error: {0}

    +

    Trait Implementations§

    source§

    impl Debug for BLSVRFError

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Display for BLSVRFError

    source§

    fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    source§

    impl Error for BLSVRFError

    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

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    §

    impl<T> AsErrorSource for T
    where + T: Error + 'static,

    §

    fn as_error_source(&self) -> &(dyn Error + 'static)

    For maximum effectiveness, this needs to be called as a method to benefit from Rust’s automatic dereferencing of method -receivers.
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    +receivers.
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where - T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T> ToString for T
    where + T: Display + ?Sized,

    source§

    default fn to_string(&self) -> String

    Converts the given value to a String. Read more
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vrf/blsvrf/struct.BLSVRFScheme.html b/jf_vrf/blsvrf/struct.BLSVRFScheme.html index df9312854..2e3a1bc9f 100644 --- a/jf_vrf/blsvrf/struct.BLSVRFScheme.html +++ b/jf_vrf/blsvrf/struct.BLSVRFScheme.html @@ -1,66 +1,66 @@ -BLSVRFScheme in jf_vrf::blsvrf - Rust

    Struct jf_vrf::blsvrf::BLSVRFScheme

    source ·
    pub struct BLSVRFScheme { /* private fields */ }
    Expand description

    BLS VRF scheme. +BLSVRFScheme in jf_vrf::blsvrf - Rust

    Struct jf_vrf::blsvrf::BLSVRFScheme

    source ·
    pub struct BLSVRFScheme { /* private fields */ }
    Expand description

    BLS VRF scheme. Optimized for signature size, i.e.: PK in G2 and sig in G1

    Implementations§

    source§

    impl BLSVRFScheme

    source

    pub fn new(cs_id: BLSVRFCipherSuite) -> Self

    Creates a new BLS VRF instance with the given ciphersuite.

    -

    Trait Implementations§

    source§

    impl Vrf for BLSVRFScheme

    §

    type PublicParameter = ()

    Public Parameter. +

    Trait Implementations§

    source§

    impl Vrf for BLSVRFScheme

    §

    type PublicParameter = ()

    Public Parameter. For BLS signatures, we want to use default prime subgroup generators. So here we don’t need to specify which PP it is.

    §

    type PublicKey = BLSVerKey

    VRF public key.

    §

    type SecretKey = BLSSignKey

    VRF secret key.

    §

    type Proof = BLSSignature

    VRF signature.

    -
    §

    type Input = Vec<u8>

    The input of VRF proof.

    -
    §

    type Output = Vec<u8>

    The output of VRF evaluation.

    +
    §

    type Input = Vec<u8>

    The input of VRF proof.

    +
    §

    type Output = Vec<u8>

    The output of VRF evaluation.

    §

    type Error = BLSVRFError

    VRF Error

    source§

    fn param_gen<R: CryptoRng + RngCore>( &self, - _prng: Option<&mut R>, -) -> Result<Self::PublicParameter, BLSVRFError>

    generate public parameters from RNG.

    + _prng: Option<&mut R>, +) -> Result<Self::PublicParameter, BLSVRFError>

    generate public parameters from RNG.

    source§

    fn key_gen<R: CryptoRng + RngCore>( &self, pp: &Self::PublicParameter, - prng: &mut R, -) -> Result<(Self::SecretKey, Self::PublicKey), BLSVRFError>

    Creates a pair of VRF public and private keys.

    + prng: &mut R, +) -> Result<(Self::SecretKey, Self::PublicKey), BLSVRFError>

    Creates a pair of VRF public and private keys.

    source§

    fn prove<R: CryptoRng + RngCore>( &self, pp: &Self::PublicParameter, secret_key: &Self::SecretKey, input: &Self::Input, - prng: &mut R, -) -> Result<Self::Proof, BLSVRFError>

    Creates the VRF proof associated with a VRF secret key.

    + prng: &mut R, +) -> Result<Self::Proof, BLSVRFError>

    Creates the VRF proof associated with a VRF secret key.

    source§

    fn proof_to_hash( &mut self, _pp: &Self::PublicParameter, proof: &Self::Proof, -) -> Result<Self::Output, BLSVRFError>

    Computes the VRF output associated with a VRF proof.

    +) -> Result<Self::Output, BLSVRFError>

    Computes the VRF output associated with a VRF proof.

    source§

    fn verify( &mut self, pp: &Self::PublicParameter, proof: &Self::Proof, public_key: &Self::PublicKey, input: &Self::Input, -) -> Result<(bool, Option<Self::Output>), BLSVRFError>

    Verifies a VRF proof.

    +) -> Result<(bool, Option<Self::Output>), BLSVRFError>

    Verifies a VRF proof.

    source§

    fn evaluate<R: CryptoRng + RngCore>( &mut self, pp: &Self::PublicParameter, secret_key: &Self::SecretKey, input: &Self::Input, - prng: &mut R, -) -> Result<Self::Output, Self::Error>

    Computes the VRF output given a public input and a VRF secret key.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where - T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where - T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where - T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    -
    source§

    impl<T, U> Into<U> for T
    where - U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    + prng: &mut R, +) -> Result<Self::Output, Self::Error>
    Computes the VRF output given a public input and a VRF secret key.

    Auto Trait Implementations§

    Blanket Implementations§

    source§

    impl<T> Any for T
    where + T: 'static + ?Sized,

    source§

    fn type_id(&self) -> TypeId

    Gets the TypeId of self. Read more
    source§

    impl<T> Borrow<T> for T
    where + T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    source§

    impl<T> BorrowMut<T> for T
    where + T: ?Sized,

    source§

    fn borrow_mut(&mut self) -> &mut T

    Mutably borrows from an owned value. Read more
    source§

    impl<T> From<T> for T

    source§

    fn from(t: T) -> T

    Returns the argument unchanged.

    +
    source§

    impl<T, U> Into<U> for T
    where + U: From<T>,

    source§

    fn into(self) -> U

    Calls U::from(self).

    That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

    -
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> +From<T> for U chooses to do.

    +
    source§

    impl<T> IntoEither for T

    source§

    fn into_either(self, into_left: bool) -> Either<Self, Self>

    Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
    source§

    fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
    where - F: FnOnce(&Self) -> bool,

    Converts self into a Left variant of Either<Self, Self> + F: FnOnce(&Self) -> bool,
    Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> -otherwise. Read more
    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where - U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where - U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where +otherwise. Read more

    §

    impl<T> Pointable for T

    §

    const ALIGN: usize = _

    The alignment of pointer.
    §

    type Init = T

    The type for initializers.
    §

    unsafe fn init(init: <T as Pointable>::Init) -> usize

    Initializes a with the given initializer. Read more
    §

    unsafe fn deref<'a>(ptr: usize) -> &'a T

    Dereferences the given pointer. Read more
    §

    unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

    Mutably dereferences the given pointer. Read more
    §

    unsafe fn drop(ptr: usize)

    Drops the object pointed to by the given pointer. Read more
    source§

    impl<T> Same for T

    §

    type Output = T

    Should always be Self
    source§

    impl<T, U> TryFrom<U> for T
    where + U: Into<T>,

    §

    type Error = Infallible

    The type returned in the event of a conversion error.
    source§

    fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

    Performs the conversion.
    source§

    impl<T, U> TryInto<U> for T
    where + U: TryFrom<T>,

    §

    type Error = <U as TryFrom<T>>::Error

    The type returned in the event of a conversion error.
    source§

    fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

    Performs the conversion.
    §

    impl<V, T> VZip<V> for T
    where V: MultiLane<T>,

    §

    fn vzip(self) -> V

    \ No newline at end of file diff --git a/jf_vrf/index.html b/jf_vrf/index.html index 9fc2e7829..26f4ca18d 100644 --- a/jf_vrf/index.html +++ b/jf_vrf/index.html @@ -1,2 +1,2 @@ -jf_vrf - Rust

    Crate jf_vrf

    source ·
    Expand description

    Verifiable random functions (VRF).

    +jf_vrf - Rust

    Crate jf_vrf

    source ·
    Expand description

    Verifiable random functions (VRF).

    Modules§

    Traits§

    • A trait for VRF proof, evaluation and verification.
    \ No newline at end of file diff --git a/jf_vrf/trait.Vrf.html b/jf_vrf/trait.Vrf.html index 52cf204cc..df434d8f5 100644 --- a/jf_vrf/trait.Vrf.html +++ b/jf_vrf/trait.Vrf.html @@ -1,41 +1,41 @@ -Vrf in jf_vrf - Rust

    Trait jf_vrf::Vrf

    source ·
    pub trait Vrf {
    +Vrf in jf_vrf - Rust

    Trait jf_vrf::Vrf

    source ·
    pub trait Vrf {
         type PublicParameter;
    -    type PublicKey: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    -    type SecretKey: Debug + Clone + Send + Sync + Zeroize + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    -    type Proof: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    -    type Input: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    -    type Output: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    -    type Error: Error;
    +    type PublicKey: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    +    type SecretKey: Debug + Clone + Send + Sync + Zeroize + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    +    type Proof: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    +    type Input: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    +    type Output: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq;
    +    type Error: Error;
     
         // Required methods
         fn param_gen<R: CryptoRng + RngCore>(
             &self,
    -        prng: Option<&mut R>,
    -    ) -> Result<Self::PublicParameter, Self::Error>;
    +        prng: Option<&mut R>,
    +    ) -> Result<Self::PublicParameter, Self::Error>;
         fn key_gen<R: CryptoRng + RngCore>(
             &self,
             pp: &Self::PublicParameter,
    -        prng: &mut R,
    -    ) -> Result<(Self::SecretKey, Self::PublicKey), Self::Error>;
    +        prng: &mut R,
    +    ) -> Result<(Self::SecretKey, Self::PublicKey), Self::Error>;
         fn prove<R: CryptoRng + RngCore>(
             &self,
             pp: &Self::PublicParameter,
             secret_key: &Self::SecretKey,
             input: &Self::Input,
    -        prng: &mut R,
    -    ) -> Result<Self::Proof, Self::Error>;
    +        prng: &mut R,
    +    ) -> Result<Self::Proof, Self::Error>;
         fn proof_to_hash(
             &mut self,
             pp: &Self::PublicParameter,
             proof: &Self::Proof,
    -    ) -> Result<Self::Output, Self::Error>;
    +    ) -> Result<Self::Output, Self::Error>;
         fn verify(
             &mut self,
             pp: &Self::PublicParameter,
             proof: &Self::Proof,
             public_key: &Self::PublicKey,
             input: &Self::Input,
    -    ) -> Result<(bool, Option<Self::Output>), Self::Error>;
    +    ) -> Result<(bool, Option<Self::Output>), Self::Error>;
     
         // Provided method
         fn evaluate<R: CryptoRng + RngCore>(
    @@ -43,50 +43,50 @@
             pp: &Self::PublicParameter,
             secret_key: &Self::SecretKey,
             input: &Self::Input,
    -        prng: &mut R,
    -    ) -> Result<Self::Output, Self::Error> { ... }
    +        prng: &mut R,
    +    ) -> Result<Self::Output, Self::Error> { ... }
     }
    Expand description

    A trait for VRF proof, evaluation and verification.

    Required Associated Types§

    source

    type PublicParameter

    Public parameters

    -
    source

    type PublicKey: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF public key.

    -
    source

    type SecretKey: Debug + Clone + Send + Sync + Zeroize + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF secret key.

    -
    source

    type Proof: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF signature.

    -
    source

    type Input: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    The input of VRF proof.

    -
    source

    type Output: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    The output of VRF evaluation.

    -
    source

    type Error: Error

    Error type

    +
    source

    type PublicKey: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF public key.

    +
    source

    type SecretKey: Debug + Clone + Send + Sync + Zeroize + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF secret key.

    +
    source

    type Proof: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    VRF signature.

    +
    source

    type Input: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    The input of VRF proof.

    +
    source

    type Output: Debug + Clone + Send + Sync + for<'a> Deserialize<'a> + Serialize + PartialEq + Eq

    The output of VRF evaluation.

    +
    source

    type Error: Error

    Error type

    Required Methods§

    source

    fn param_gen<R: CryptoRng + RngCore>( &self, - prng: Option<&mut R>, -) -> Result<Self::PublicParameter, Self::Error>

    generate public parameters from RNG. + prng: Option<&mut R>, +) -> Result<Self::PublicParameter, Self::Error>

    generate public parameters from RNG. If the RNG is not presented, use the default group generator.

    source

    fn key_gen<R: CryptoRng + RngCore>( &self, pp: &Self::PublicParameter, - prng: &mut R, -) -> Result<(Self::SecretKey, Self::PublicKey), Self::Error>

    Creates a pair of VRF public and private keys.

    + prng: &mut R, +) -> Result<(Self::SecretKey, Self::PublicKey), Self::Error>

    Creates a pair of VRF public and private keys.

    source

    fn prove<R: CryptoRng + RngCore>( &self, pp: &Self::PublicParameter, secret_key: &Self::SecretKey, input: &Self::Input, - prng: &mut R, -) -> Result<Self::Proof, Self::Error>

    Creates the VRF proof associated with a VRF secret key.

    + prng: &mut R, +) -> Result<Self::Proof, Self::Error>

    Creates the VRF proof associated with a VRF secret key.

    source

    fn proof_to_hash( &mut self, pp: &Self::PublicParameter, proof: &Self::Proof, -) -> Result<Self::Output, Self::Error>

    Computes the VRF output associated with a VRF proof.

    +) -> Result<Self::Output, Self::Error>

    Computes the VRF output associated with a VRF proof.

    source

    fn verify( &mut self, pp: &Self::PublicParameter, proof: &Self::Proof, public_key: &Self::PublicKey, input: &Self::Input, -) -> Result<(bool, Option<Self::Output>), Self::Error>

    Verifies a VRF proof.

    +) -> Result<(bool, Option<Self::Output>), Self::Error>

    Verifies a VRF proof.

    Provided Methods§

    source

    fn evaluate<R: CryptoRng + RngCore>( &mut self, pp: &Self::PublicParameter, secret_key: &Self::SecretKey, input: &Self::Input, - prng: &mut R, -) -> Result<Self::Output, Self::Error>

    Computes the VRF output given a public input and a VRF secret key.

    -

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl Vrf for BLSVRFScheme

    §

    type PublicParameter = ()

    §

    type PublicKey = BLSVerKey

    §

    type SecretKey = BLSSignKey

    §

    type Proof = BLSSignature

    §

    type Input = Vec<u8>

    §

    type Output = Vec<u8>

    §

    type Error = BLSVRFError

    \ No newline at end of file + prng: &mut R, +) -> Result<Self::Output, Self::Error>

    Computes the VRF output given a public input and a VRF secret key.

    +

    Object Safety§

    This trait is not object safe.

    Implementors§

    source§

    impl Vrf for BLSVRFScheme

    §

    type PublicParameter = ()

    §

    type PublicKey = BLSVerKey

    §

    type SecretKey = BLSSignKey

    §

    type Proof = BLSSignature

    §

    type Input = Vec<u8>

    §

    type Output = Vec<u8>

    §

    type Error = BLSVRFError

    \ No newline at end of file diff --git a/search-index.js b/search-index.js index abbc42b72..3d6fb3a38 100644 --- a/search-index.js +++ b/search-index.js @@ -1,19 +1,19 @@ var searchIndex = new Map(JSON.parse('[\ -["jf_aead",{"t":"FFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AEADError","Ciphertext","EncKey","KeyPair","batch_check","batch_check","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","cmp","decrypt","default","default","deserialize","deserialize","deserialize","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","enc_key","enc_key_ref","encrypt","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","generate","hash","hash","hash","into","into","into","into","partial_cmp","serialize","serialize","serialize","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_owned","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","vzip","vzip","vzip","vzip"],"q":[[0,"jf_aead"],[91,"ark_serialize::error"],[92,"core::result"],[93,"core::iter::traits::iterator"],[94,"core::marker"],[95,"core::cmp"],[96,"alloc::vec"],[97,"serde::de"],[98,"ark_serialize"],[99,"std::io"],[100,"rand_core"],[101,"core::fmt"],[102,"core::hash"],[103,"core::option"],[104,"serde::ser"],[105,"alloc::string"],[106,"core::any"]],"i":[0,0,0,0,5,9,11,12,5,9,11,12,5,9,11,5,9,11,12,5,9,11,12,5,9,12,5,11,5,11,5,9,11,5,9,5,5,11,11,12,5,9,11,12,12,5,9,11,11,12,5,9,5,11,12,9,11,12,5,9,12,11,5,9,11,5,9,11,5,9,11,12,5,9,12,11,12,5,9,11,12,5,9,11,12,5,9,11,12,5,9],"f":"````{c{{f{bd}}}{{n{}{{h{{l{j}}}}}}A`}}{c{{f{bd}}}{{n{}{{h{{l{Ab}}}}}}A`}}{{{l{c}}}{{l{e}}}{}{}}000{{{l{Adc}}}{{l{Ade}}}{}{}}000{{{l{Af}}}{{f{bd}}}}{{{l{j}}}{{f{bd}}}}{{{l{Ab}}}{{f{bd}}}}{{{l{Af}}}Af}{{{l{Ah}}}Ah}{{{l{j}}}j}{{{l{Ab}}}Ab}{{{l{c}}{l{Ade}}}b{}{}}000{{{l{Ah}}{l{Ah}}}Aj}{{{l{j}}{l{Ab}}{l{{An{Al}}}}}{{f{{B`{Al}}Ah}}}}{{}Af}{{}j}{c{{f{Af}}}Bb}{c{{f{j}}}Bb}{c{{f{Ab}}}Bb}{{cBdBf}{{f{Afd}}}Bh}{{cBdBf}{{f{jd}}}Bh}{{cBdBf}{{f{Abd}}}Bh}{{{l{j}}}Af}{{{l{j}}}{{l{Af}}}}{{{l{Af}}c{l{{An{Al}}}}{l{{An{Al}}}}}{{f{AbAh}}}{BjBl}}{{{l{Af}}{l{Af}}}Bn}{{{l{Ah}}{l{Ah}}}Bn}{{{l{j}}{l{j}}}Bn}{{{l{Ab}}{l{Ab}}}Bn}{{{l{Af}}{l{AdC`}}}Cb}{{{l{Ah}}{l{AdC`}}}Cb}0{{{l{j}}{l{AdC`}}}Cb}{{{l{Ab}}{l{AdC`}}}Cb}{{{Cd{Al}}}Af}{cc{}}000{{{l{Adc}}}j{BjBl}}{{{l{Af}}{l{Adc}}}bCf}{{{l{Ah}}{l{Adc}}}bCf}{{{l{Ab}}{l{Adc}}}bCf}{ce{}{}}000{{{l{Ah}}{l{Ah}}}{{Ch{Aj}}}}{{{l{Af}}c}fCj}{{{l{j}}c}fCj}{{{l{Ab}}c}fCj}{{{l{Af}}cBd}{{f{bd}}}Cl}{{{l{j}}cBd}{{f{bd}}}Cl}{{{l{Ab}}cBd}{{f{bd}}}Cl}{{{l{Af}}Bd}Cn}{{{l{j}}Bd}Cn}{{{l{Ab}}Bd}Cn}{{{l{c}}}e{}{}}000{{{l{c}}}D`{}}{c{{f{e}}}{}{}}0000000{{{l{c}}}Db{}}000>>>>","D":"Bd","p":[[1,"unit"],[6,"SerializationError",91],[6,"Result",92],[17,"Item"],[5,"KeyPair",0],[1,"reference"],[10,"Iterator",93],[10,"Send",94],[5,"Ciphertext",0],[0,"mut"],[5,"EncKey",0],[5,"AEADError",0],[6,"Ordering",95],[1,"u8"],[1,"slice"],[5,"Vec",96],[10,"Deserializer",97],[6,"Compress",98],[6,"Validate",98],[10,"Read",99],[10,"RngCore",100],[10,"CryptoRng",100],[1,"bool"],[5,"Formatter",101],[8,"Result",101],[1,"array"],[10,"Hasher",102],[6,"Option",103],[10,"Serializer",104],[10,"Write",99],[1,"usize"],[5,"String",105],[5,"TypeId",106]],"r":[],"b":[[43,"impl-Debug-for-AEADError"],[44,"impl-Display-for-AEADError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAEkABQAFABUAHAAHACcACQA2AAIAPQAeAA=="}],\ +["jf_aead",{"t":"FFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["AEADError","Ciphertext","EncKey","KeyPair","batch_check","batch_check","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","decrypt","default","default","deserialize","deserialize","deserialize","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","enc_key","enc_key_ref","encrypt","eq","eq","eq","eq","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","generate","hash","hash","hash","into","into","into","into","partial_cmp","serialize","serialize","serialize","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_owned","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","vzip","vzip","vzip","vzip"],"q":[[0,"jf_aead"],[96,"ark_serialize::error"],[97,"core::result"],[98,"core::iter::traits::iterator"],[99,"core::marker"],[100,"core::cmp"],[101,"alloc::vec"],[102,"serde::de"],[103,"ark_serialize"],[104,"std::io"],[105,"rand_core"],[106,"core::fmt"],[107,"core::hash"],[108,"core::option"],[109,"serde::ser"],[110,"alloc::string"],[111,"core::any"]],"i":[0,0,0,0,5,9,11,12,5,9,11,12,5,9,11,5,9,11,12,5,9,11,12,5,9,11,12,12,5,9,12,5,11,5,11,5,9,11,5,9,5,5,11,11,12,5,9,11,12,12,5,9,11,11,12,5,9,5,11,12,9,11,12,5,9,12,11,5,9,11,5,9,11,5,9,11,12,5,9,12,11,12,5,9,11,12,5,9,11,12,5,9,11,12,5,9],"f":"````{c{{f{bd}}}{{n{}{{h{{l{j}}}}}}A`}}{c{{f{bd}}}{{n{}{{h{{l{Ab}}}}}}A`}}{{{l{c}}}{{l{e}}}{}{}}000{{{l{Adc}}}{{l{Ade}}}{}{}}000{{{l{Af}}}{{f{bd}}}}{{{l{j}}}{{f{bd}}}}{{{l{Ab}}}{{f{bd}}}}{{{l{Af}}}Af}{{{l{Ah}}}Ah}{{{l{j}}}j}{{{l{Ab}}}Ab}{{{l{c}}{l{Ade}}}b{}{}}000{{{l{c}}}b{}}0000{{{l{Ah}}{l{Ah}}}Aj}{{{l{j}}{l{Ab}}{l{{An{Al}}}}}{{f{{B`{Al}}Ah}}}}{{}Af}{{}j}{c{{f{Af}}}Bb}{c{{f{j}}}Bb}{c{{f{Ab}}}Bb}{{cBdBf}{{f{Afd}}}Bh}{{cBdBf}{{f{jd}}}Bh}{{cBdBf}{{f{Abd}}}Bh}{{{l{j}}}Af}{{{l{j}}}{{l{Af}}}}{{{l{Af}}c{l{{An{Al}}}}{l{{An{Al}}}}}{{f{AbAh}}}{BjBl}}{{{l{Af}}{l{Af}}}Bn}{{{l{Ah}}{l{Ah}}}Bn}{{{l{j}}{l{j}}}Bn}{{{l{Ab}}{l{Ab}}}Bn}{{{l{Af}}{l{AdC`}}}Cb}{{{l{Ah}}{l{AdC`}}}Cb}0{{{l{j}}{l{AdC`}}}Cb}{{{l{Ab}}{l{AdC`}}}Cb}{cc{}}{{{Cd{Al}}}Af}111{{{l{Adc}}}j{BjBl}}{{{l{Af}}{l{Adc}}}bCf}{{{l{Ah}}{l{Adc}}}bCf}{{{l{Ab}}{l{Adc}}}bCf}{ce{}{}}000{{{l{Ah}}{l{Ah}}}{{Ch{Aj}}}}{{{l{Af}}c}fCj}{{{l{j}}c}fCj}{{{l{Ab}}c}fCj}{{{l{Af}}cBd}{{f{bd}}}Cl}{{{l{j}}cBd}{{f{bd}}}Cl}{{{l{Ab}}cBd}{{f{bd}}}Cl}{{{l{Af}}Bd}Cn}{{{l{j}}Bd}Cn}{{{l{Ab}}Bd}Cn}{{{l{c}}}e{}{}}000{{{l{c}}}D`{}}{c{{f{e}}}{}{}}0000000{{{l{c}}}Db{}}000>>>>","D":"Bd","p":[[1,"unit"],[6,"SerializationError",96],[6,"Result",97],[17,"Item"],[5,"KeyPair",0],[1,"reference"],[10,"Iterator",98],[10,"Send",99],[5,"Ciphertext",0],[0,"mut"],[5,"EncKey",0],[5,"AEADError",0],[6,"Ordering",100],[1,"u8"],[1,"slice"],[5,"Vec",101],[10,"Deserializer",102],[6,"Compress",103],[6,"Validate",103],[10,"Read",104],[10,"RngCore",105],[10,"CryptoRng",105],[1,"bool"],[5,"Formatter",106],[8,"Result",106],[1,"array"],[10,"Hasher",107],[6,"Option",108],[10,"Serializer",109],[10,"Write",104],[1,"usize"],[5,"String",110],[5,"TypeId",111]],"r":[],"b":[[48,"impl-Debug-for-AEADError"],[49,"impl-Display-for-AEADError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE4ABgAFABoAIQAHACwACAA2AAAAOwACAEIAHgA="}],\ ["jf_commitment",{"t":"KRRRRMM","n":["CommitmentScheme","Error","Input","Output","Randomness","commit","verify"],"q":[[0,"jf_commitment"],[7,"core::option"],[8,"core::result"],[9,"core::borrow"]],"i":[0,6,6,6,6,6,6],"f":"`````{{e{d{{b{g}}}}}{{f{ik}}}{}{{h{c}}}{}{}{}}{{e{d{{b{g}}}}{b{i}}}{{f{{f{jj}}k}}}{}{{h{c}}}{}{}{}}","D":"n","p":[[1,"reference"],[6,"Option",7],[6,"Result",8],[10,"Borrow",9],[1,"unit"],[10,"CommitmentScheme",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAEAAAAAAAAAEAAAAAEA"}],\ ["jf_crhf",{"t":"KRRRM","n":["CRHF","Error","Input","Output","evaluate"],"q":[[0,"jf_crhf"],[5,"core::result"],[6,"core::borrow"]],"i":[0,3,3,3,3],"f":"````{e{{b{gi}}}{}{{d{c}}}{}{}}","D":"l","p":[[6,"Result",5],[10,"Borrow",6],[10,"CRHF",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["jf_elgamal",{"t":"FFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Ciphertext","EncKey","KeyPair","ParameterError","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","batch_check","batch_check","batch_check","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","clone","clone","clone","clone_into","clone_into","clone_into","decrypt","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deterministic_encrypt","drop","drop","drop","drop","enc_key","enc_key_ref","encrypt","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_scalars","generate","hash","hash","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","rand","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_scalars","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","vzip","vzip","vzip","vzip","zeroize"],"q":[[0,"jf_elgamal"],[127,"dyn_clone::sealed"],[128,"core::any"],[129,"ark_serialize::error"],[130,"core::result"],[131,"ark_ec::models::twisted_edwards"],[132,"core::iter::traits::iterator"],[133,"core::marker"],[134,"alloc::vec"],[135,"jf_rescue"],[136,"ark_serialize"],[137,"std::io"],[138,"rand_core"],[139,"core::fmt"],[140,"core::hash"],[141,"alloc::boxed"],[142,"alloc::sync"],[143,"alloc::rc"],[144,"rand::rng"],[145,"alloc::string"]],"i":[0,0,0,0,10,13,14,26,10,13,14,26,10,13,14,10,13,14,26,10,13,14,26,10,13,14,10,13,14,10,13,14,10,13,14,13,10,26,10,13,14,26,10,13,14,10,13,14,10,26,10,13,14,13,13,10,10,13,14,10,10,10,14,14,14,26,26,10,13,14,26,10,13,14,14,13,10,14,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,10,10,13,14,10,13,14,10,13,14,14,26,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,10],"f":"````{{{b{c}}d}f{}}00{{{b{c}}}{{b{h}}}{}}000{{{b{jc}}}{{b{jh}}}{}}000{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Ad{c}}}}}}}}Ah}}{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Aj{c}}}}}}}}Ah}}{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Al{c}}}}}}}}Ah}}{{{b{c}}}{{b{e}}}{}{}}000{{{b{jc}}}{{b{je}}}{}{}}000{{{b{{Ad{c}}}}}{{n{fl}}}A`}{{{b{{Aj{c}}}}}{{n{fl}}}A`}{{{b{{Al{c}}}}}{{n{fl}}}A`}{{{b{{Ad{c}}}}}{{Ad{c}}}A`}{{{b{{Aj{c}}}}}{{Aj{c}}}A`}{{{b{{Al{c}}}}}{{Al{c}}}A`}{{{b{c}}{b{je}}}f{}{}}00{{{b{{Aj{e}}}}{b{{Al{e}}}}}{{An{c}}}B`{{A`{}{{Bb{c}}}}}}{{}{{Ad{c}}}A`}{Bd{{b{c}}}{}}000{Bd{{b{jc}}}{}}000{{cBfBh}{{n{{Ad{e}}l}}}BjA`}{{cBfBh}{{n{{Aj{e}}l}}}BjA`}{{cBfBh}{{n{{Al{e}}l}}}BjA`}{{{b{{Ad{e}}}}{b{{Bl{c}}}}}{{Al{e}}}B`{{A`{}{{Bb{c}}}}}}{Bdf}000{{{b{{Aj{c}}}}}{{Ad{c}}}A`}{{{b{{Aj{c}}}}}{{b{{Ad{c}}}}}A`}{{{b{{Ad{e}}}}{b{jg}}{b{Bl}}}{{Al{e}}}B`{{A`{}{{Bb{c}}}}}{BnC`}}{{{b{{Ad{c}}}}{b{{Ad{c}}}}}CbA`}{{{b{{Aj{c}}}}{b{{Aj{c}}}}}CbA`}{{{b{{Al{c}}}}{b{{Al{c}}}}}CbA`}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{Cd}}{b{jCf}}}Ch}0{{{b{{Ad{c}}}}{b{jCf}}}ChA`}{{{b{{Aj{c}}}}{b{jCf}}}ChA`}{{{b{{Al{c}}}}{b{jCf}}}ChA`}{cc{}}000{{{b{Bl}}}{{n{{Al{c}}Cd}}}A`}{{{b{jc}}}{{Aj{e}}}{BnC`}A`}{{{b{{Ad{c}}}}{b{je}}}fA`Cj}{{{b{{Al{c}}}}{b{je}}}fA`Cj}{{}Bd}000{ce{}{}}000{{{Cl{c}}}{{Cl{h}}}{}}000{{{Cn{c}}}{{Cn{h}}}{}}000{{{D`{c}}}{{D`{h}}}{}}000{{{b{jc}}}{{Ad{e}}}{DbC`Dd}A`}{{{b{{Ad{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Aj{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Al{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Ad{c}}}}Bf}BdA`}{{{b{{Aj{c}}}}Bf}BdA`}{{{b{{Al{c}}}}Bf}BdA`}{{{b{c}}}e{}{}}00{{{b{{Al{c}}}}}AnA`}{{{b{c}}}Dh{}}{c{{n{e}}}{}{}}0000000{{{b{c}}}Dj{}}000????{{{b{j{Ad{c}}}}}fA`}","D":"Bj","p":[[1,"reference"],[5,"Private",127],[1,"unit"],[10,"Any",128],[0,"mut"],[6,"SerializationError",129],[6,"Result",130],[10,"TECurveConfig",131],[17,"Item"],[5,"EncKey",0],[10,"Iterator",132],[10,"Send",133],[5,"KeyPair",0],[5,"Ciphertext",0],[5,"Vec",134],[10,"RescueParameter",135],[17,"BaseField"],[1,"usize"],[6,"Compress",136],[6,"Validate",136],[10,"Read",137],[1,"slice"],[10,"CryptoRng",138],[10,"RngCore",138],[1,"bool"],[5,"ParameterError",0],[5,"Formatter",139],[8,"Result",139],[10,"Hasher",140],[5,"Box",141],[5,"Arc",142],[5,"Rc",143],[10,"Rng",144],[10,"Sized",133],[10,"Write",137],[5,"String",145],[5,"TypeId",128]],"r":[],"b":[[65,"impl-Debug-for-ParameterError"],[66,"impl-Display-for-ParameterError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGoABwAFAB4AJQALADIAAwA5AA0ATQAFAFcAFQBuABEA"}],\ -["jf_merkle_tree",{"t":"TKRRRKKRKKKRGRKEKKRRPPPKKKNCNNNNMNNMNNMMMNNNNNCCNNNNNMNMNCMMQQQQNNNNNMCMCCMMMNNMCMMNMNMNNNMMCNMMNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNFINNNNNNNNNNNNNNNNNNNNNNNNNNRRIKFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRFKRRRKRKKRNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNMMNNNNNNNNMNMNNEPEEPEEPEPIEEGIFEEEFIIIIFFEEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["ARITY","AppendableMerkleTreeScheme","BatchMembershipProof","BatchNonMembershipProof","Commitment","DigestAlgorithm","Element","Element","ForgetableMerkleTreeScheme","ForgetableUniversalMerkleTreeScheme","Index","Index","LookupResult","MembershipProof","MerkleCommitment","MerkleTreeError","MerkleTreeScheme","NodeValue","NodeValue","NonMembershipProof","NotFound","NotInMemory","Ok","PersistentUniversalMerkleTreeScheme","ToTraversalPath","UniversalMerkleTreeScheme","__clone_box","append_only","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","commitment","deref","deref_mut","digest","digest","digest_leaf","drop","eq","equivalent","equivalent","equivalent","errors","examples","expect_not_found","expect_not_in_memory","expect_ok","extend","fmt","forget","from","from_commitment","hash","hasher","height","height","impl_forgetable_merkle_tree_scheme","impl_merkle_tree_scheme","impl_to_traversal_path_biguint","impl_to_traversal_path_primitives","init","into","into_any","into_any_arc","into_any_rc","iter","light_weight","lookup","macros","namespaced_merkle_tree","non_membership_remember","non_membership_verify","num_leaves","persistent_remove","persistent_update","persistent_update_with","prelude","push","remember","remove","size","to_owned","to_traversal_path","try_from","try_into","type_id","universal_forget","universal_lookup","universal_merkle_tree","update","update_with","verify","vzip","MerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","forget","from","from_commitment","from_elems","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","num_leaves","push","remember","serialize","to_owned","try_from","try_into","type_id","verify","vzip","DigestError","ExceedCapacity","ExistingLeaf","ForgottenLeaf","InconsistentStructureError","MerkleTreeError","NotFound","ParametersError","as_any","as_any_mut","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","into","into_any","into_any_arc","into_any_rc","to_string","try_from","try_into","type_id","vzip","Interval","IntervalMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","from","hash","init","into","into_any","into_any_arc","into_any_rc","to_owned","try_from","try_into","type_id","vzip","Bar","Foo","GenericHasherMerkleTree","HasherDigest","HasherDigestAlgorithm","HasherMerkleTree","HasherNode","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_ref","borrow","borrow","borrow_mut","borrow_mut","check","clone","clone_into","cmp","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize_with_mode","digest","digest_leaf","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from_str","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","partial_cmp","serialize","serialize_with_mode","serialized_size","tag","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","LightWeightMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","forget","from","from_commitment","from_elems","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","num_leaves","push","remember","serialize","to_owned","try_from","try_into","type_id","verify","vzip","BindNamespace","Leaf","NMT","Namespace","Namespace","Namespace","NamespaceId","NamespaceProof","NamespaceProof","Namespaced","NamespacedMerkleTreeScheme","Node","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","from","from_elems","generate_namespaced_commitment","get_namespace","get_namespace_leaves","get_namespace_proof","get_namespace_proof","hash","height","init","into","into_any","into_any_arc","into_any_rc","iter","leaves","lookup","max","min","new","num_leaves","push","serialize","to_owned","try_from","try_into","type_id","verify","verify","verify_namespace_proof","verify_namespace_proof","vzip","AppendableMerkleTreeScheme","Branch","DigestAlgorithm","Element","Empty","ForgetableMerkleTreeScheme","ForgetableUniversalMerkleTreeScheme","ForgettenSubtree","Index","Leaf","LightWeightSHA3MerkleTree","LookupResult","MerkleCommitment","MerkleNode","MerklePath","MerkleProof","MerkleTree","MerkleTreeScheme","NodeValue","RescueHash","RescueLightWeightMerkleTree","RescueMerkleTree","RescueSparseMerkleTree","SHA3MerkleTree","Sha3Digest","Sha3Node","ToTraversalPath","UniversalMerkleTree","UniversalMerkleTreeScheme","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","digest","digest","digest","digest_leaf","digest_leaf","digest_leaf","drop","drop","drop","drop","drop","elem","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","generate_namespaced_commitment","hash","hash","hash","hash","impl_to_traversal_path_biguint","impl_to_traversal_path_primitives","index","init","init","init","init","init","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","partial_cmp","pos","proof","serialize","serialize","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","to_owned","to_owned","tree_height","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","children","elem","pos","value","value","value","UniversalMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","fmt","forget","from","from_commitment","from_kv_set","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","non_membership_remember","non_membership_verify","num_leaves","persistent_update_with","remember","serialize","to_owned","try_from","try_into","type_id","universal_forget","universal_lookup","update_with","verify","vzip"],"q":[[0,"jf_merkle_tree"],[97,"jf_merkle_tree::append_only"],[143,"jf_merkle_tree::errors"],[177,"jf_merkle_tree::examples"],[205,"jf_merkle_tree::hasher"],[275,"jf_merkle_tree::light_weight"],[321,"jf_merkle_tree::namespaced_merkle_tree"],[384,"jf_merkle_tree::prelude"],[574,"jf_merkle_tree::prelude::MerkleNode"],[580,"jf_merkle_tree::universal_merkle_tree"],[630,"dyn_clone::sealed"],[631,"core::any"],[632,"num_bigint::biguint"],[633,"core::clone"],[634,"core::cmp"],[635,"core::hash"],[636,"core::result"],[637,"core::borrow"],[638,"core::iter::traits::collect"],[639,"core::fmt"],[640,"alloc::boxed"],[641,"alloc::sync"],[642,"alloc::rc"],[643,"core::option"],[644,"core::ops::function"],[645,"alloc::vec"],[646,"serde::de"],[647,"ark_serialize"],[648,"serde::ser"],[649,"core::error"],[650,"jf_rescue"],[651,"alloc::string"],[652,"ark_ff::fields"],[653,"crypto_common"],[654,"digest::digest"],[655,"ark_serialize::error"],[656,"std::io"],[657,"tagged_base64"],[658,"core::iter::traits::exact_size"],[659,"jf_merkle_tree::internal"],[660,"core::convert"]],"i":[12,0,12,44,12,0,0,12,0,0,0,12,0,12,0,0,0,0,12,44,21,21,21,0,0,0,21,0,21,21,21,21,12,21,21,12,21,21,54,20,54,21,21,21,21,21,0,0,21,21,21,29,21,36,21,36,21,0,20,12,0,0,0,0,21,21,21,21,21,12,0,12,0,0,41,44,12,46,46,46,0,29,36,44,20,21,50,21,21,21,41,44,0,44,44,12,21,0,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,24,24,24,24,24,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,72,72,0,0,0,0,0,64,99,64,99,64,64,99,64,99,64,64,64,64,64,64,99,64,99,64,64,64,99,99,99,64,64,64,64,64,64,64,99,64,64,64,64,99,64,99,64,99,64,99,64,99,64,64,64,64,64,64,64,64,99,64,64,64,99,64,99,64,99,64,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,0,84,0,0,84,80,87,0,87,0,0,84,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,81,80,84,87,77,77,77,77,77,77,77,77,77,77,77,78,78,77,77,77,77,77,77,77,77,84,77,87,77,77,0,91,0,0,91,0,0,91,0,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,89,91,92,93,89,95,91,92,93,89,95,89,91,92,93,89,95,91,92,93,89,95,89,89,91,92,93,89,95,91,92,93,89,95,91,92,89,93,93,95,93,93,95,91,92,93,89,95,92,91,92,93,89,95,91,91,91,92,92,92,93,93,93,89,89,89,95,95,95,91,92,93,89,95,91,92,93,89,95,95,91,92,89,95,0,0,92,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,92,89,92,92,91,92,89,89,91,92,93,89,95,92,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,100,101,101,100,101,102,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98],"f":"``````````````````````````{{{b{c}}d}f{}}`{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}AjAlAnB`{BbBdBf}Bb{{Bh{g}}}}{{{b{{Bj{ceg}}}}}{{Bj{ceg}}}BbBbBb}{{{b{c}}{b{je}}}f{}{}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}mAlAnB`{BbBdBf}Bb{{Bh{g}}}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{{{b{{Bn{c}}}}}{{Cb{cC`}}}B`}{{{b{Bh}}}cB`}{{{b{c}}{b{e}}}{{Cb{gC`}}}AnAlB`}{Blf}{{{b{{Bj{ceg}}}}{b{{Bj{ceg}}}}}CdCfCfCf}{{{b{c}}{b{e}}}Cd{}{}}00``{{{Bj{ceg}}}{{Cb{gC`}}}{}{}{}}{{{Bj{ceg}}}{{Cb{fC`}}}{}{}{}}{{{Bj{ceg}}}{{Cb{{Ch{ce}}C`}}}{}{}{}}{{{b{jCj}}g}{{Cb{fC`}}}{}{{Cl{c}}}{{D`{}{{Cn{e}}}}}}{{{b{{Bj{ceg}}}}{b{jDb}}}DdDfDfDf}{{{b{jDh}}e}{{Bj{gif}}}{}{{Cl{c}}}{}{}}{cc{}}{eDh{}{{Cl{c}}}}{{{b{{Bj{ceg}}}}{b{ji}}}fBfBfBfDj}`{{{b{Bh}}}Bl}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}BlAlAnB`{BbBdBf}Bb{{Bh{g}}}}````{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}{{`{ceg}}}AlAnB`{BbBdBf}Bb{{Bh{g}}}}`{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}o}{{Bj{{b{c}}if}}}AlAnB`{BbBdBf}Bb{{Bh{g}}}{{Cl{e}}}}``{{{b{jEb}}cg}{{Cb{fC`}}}{}{}{{Cl{e}}}}{{{b{{Eh{}{{Ed{c}}{Ef{e}}}}}}ik}{{Cb{CdC`}}}{}{}{}{{Cl{g}}}{{Cl{c}}}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}EjAlAnB`{BbBdBf}Bb{{Bh{g}}}}{{{b{El}}c}{{Cb{ElC`}}}{}}{{{b{El}}ei}{{Cb{ElC`}}}{}{{Cl{c}}}{}{{Cl{g}}}}{{{b{El}}ei}{{Cb{ElC`}}}{}{{Cl{c}}}{}{{Fb{{En{{b{g}}}}}{{F`{{En{g}}}}}}}}`{{{b{jCj}}e}{{Cb{fC`}}}{}{{Cl{c}}}}{{{b{jDh}}eim}{{Cb{fC`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}i}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}}{{{b{Bh}}}Ej}{{{b{c}}}e{}{}}{{{b{Fd}}Bl}{{Ff{Bl}}}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{jEb}}c}{{Bj{egi}}}{}{}{}{}}{{{b{{Eh{}{{Ed{c}}{Ef{e}}}}}}i}{{Bj{{b{k}}mc}}}{}{}{}{{Cl{g}}}{}{}}`{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}im}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}im}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}{{Fb{{En{{b{k}}}}}{{F`{{En{k}}}}}}}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Fj{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}}{{Fj{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Fj{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Fj{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Fj{cieg}}}}{b{{Fj{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Fj{cgEje}}}}m}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}{{D`{}{{Cn{k}}}}}}{{{b{{Fj{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Fj{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Fj{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{{En{Bl}}g}{{Cb{{Fj{ckEji}}C`}}}Al{{Cl{c}}}{{D`{}{{Cn{e}}}}}B`{{Fl{cEji}}}}{{{b{{Fj{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Fj{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Fj{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{Fj{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Fj{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Fj{cieg}}}AlAnB`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{j{Fj{cgEje}}}}k}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}}{{{b{j{Fj{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Fj{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}````````{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{Gf}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{Blf}{{{b{C`}}{b{C`}}}Cd}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{C`}}{b{jDb}}}Dd}0{GhC`}{cc{}}{{}Bl}>{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{c}}}Gj{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{ce{}{}}``{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Gl{c}}}}}{{Gl{c}}}{BbGn}}{{{b{c}}{b{je}}}f{}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{Blf}{{{b{{Gl{c}}}}{b{{Gl{c}}}}}Cd{CfGn}}{{{b{c}}{b{e}}}Cd{}{}}00{cc{}}{{{b{{Gl{c}}}}{b{je}}}f{BfGn}Dj}{{}Bl}?{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{ce{}{}}```````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{{H`{c}}}}}{{b{{Hb{c}}}}}Hd}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{H`{c}}}}}{{Cb{fHf}}}Hd}{{{b{{H`{c}}}}}{{H`{c}}}Hd}{{{b{c}}{b{je}}}f{}{}}{{{b{{H`{c}}}}{b{{H`{c}}}}}HhHd}{{}{{H`{c}}}Hd}{Bl{{b{c}}}{}}0{Bl{{b{jc}}}{}}0{c{{Cb{{H`{e}}}}}FnHd}{{cHjHl}{{Cb{{H`{e}}Hf}}}HnHd}{{{b{{Bn{{H`{c}}}}}}}{{Cb{{H`{c}}C`}}}I`}{{{b{c}}{b{e}}}{{Cb{{H`{g}}C`}}}{AnG`}{AlG`}I`}{Blf}0{{{b{{H`{c}}}}{b{{H`{c}}}}}CdHd}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{{H`{c}}}}{b{jDb}}}DdHd}0{cc{}}0{{{Hb{c}}}{{H`{c}}}Hd}{{{b{Ib}}}{{Cb{{H`{c}}e}}}Hd{}}{{{b{{H`{c}}}}{b{je}}}fHdDj}{{}Bl}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{{H`{c}}}}{b{{H`{c}}}}}{{En{Hh}}}Hd}{{{b{{H`{c}}}}e}CbHdGd}{{{b{{H`{c}}}}eHj}{{Cb{fHf}}}HdId}{{{b{{H`{c}}}}Hj}BlHd}{{}Gj}{{{b{c}}}e{}{}}{{{b{c}}}Gj{}}{c{{Cb{e}}}{}{}}{If{{Cb{{H`{c}}e}}}Hd{}}{{{b{If}}}{{Cb{{H`{c}}e}}}Hd{}}222{{{b{c}}}Fh{}}0>>`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ih{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}}{{Ih{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Ih{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ih{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Ih{cieg}}}}{b{{Ih{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Ih{cgEje}}}}m}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}{{D`{}{{Cn{k}}}}}}{{{b{{Ih{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Ih{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Ih{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{{En{Bl}}g}{{Cb{{Ih{ckEji}}C`}}}Al{{Cl{c}}}{{D`{}{{Cn{e}}}}}B`{{Fl{cEji}}}}{{{b{{Ih{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Ih{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ih{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{Ih{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Ih{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Ih{cieg}}}AlAnB`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{j{Ih{cgEje}}}}k}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}}{{{b{j{Ih{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Ih{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ij{eicg}}}}}AjIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}}{{Ij{eicg}}}{IlBb}{Al{J`{}{{In{c}}}}Bb}{B`Bb}{{Fl{eEjg}}{Jb{eEjgc}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Ij{eicg}}}}}kIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ij{gkei}}}}}FnIl{Al{J`{}{{In{e}}}}G`Gb}{B`G`Gb}{{Fl{gEji}}{Jb{gEjie}}}}{Blf}{{{b{{Ij{eicg}}}}{b{{Ij{eicg}}}}}Cd{IlCf}{Al{J`{}{{In{c}}}}Cf}{B`Cf}{{Fl{eEjg}}{Jb{eEjgc}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Ij{eicg}}}}o}{{Cb{fC`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}{{D`{}{{Cn{m}}}}}}{{{b{{Ij{eicg}}}}{b{jDb}}}Dd{IlDf}{Al{J`{}{{In{c}}}}Df}{B`Df}{{Fl{eEjg}}{Jb{eEjgc}}Df}}{cc{}}{{{En{Bl}}i}{{Cb{{Ij{emck}}C`}}}Il{Al{J`{}{{In{c}}}}}{{Cl{e}}}{{D`{}{{Cn{g}}}}}B`{{Fl{eEjk}}{Jb{eEjkc}}}}{{{`{ce}}}cB`Il}{{{b{{J`{}{{In{c}}}}}}}cIl}{{{b{{Jh{}{{In{c}}{Jd{e}}{Jf{g}}}}}}}{{Ff{{b{e}}}}}Il{Al{J`{}{{In{c}}}}}B`}{{{b{{Jn{}{{Jj{c}}{Jl{e}}}}}}e}cJhIl}{{{b{{Ij{eicg}}}}k}mIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}Bb}{}{}}{{{b{{Ij{eicg}}}}{b{jk}}}f{IlBf}{Al{J`{}{{In{c}}}}Bf}{B`Bf}{{Fl{eEjg}}{Jb{eEjgc}}Bf}Dj}{{{b{{Ij{eicg}}}}}BlIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ij{eicg}}}}}{{`{kmo}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{}{}}{{{b{{Ij{eicg}}}}}{{`{{K`{}{{Cn{{b{e}}}}}}}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}m}{{Bj{{b{o}}Aaf}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}{}{}}{{}Il}0{Bl{{Ij{eicg}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}}EjIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{j{Ij{eicg}}}}m}{{Cb{fC`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}}{{{b{{Ij{eicg}}}}k}CbIl{Al{J`{}{{In{c}}}}G`Gb}{B`G`Gb}{{Fl{eEjg}}{Jb{eEjgc}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{{Jh{}{{In{c}}{Jd{e}}{Jf{g}}}}}}{b{{`{gc}}}}c}{{Cb{{Cb{ff}}C`}}}Il{Al{J`{}{{In{c}}}}}B`}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{{Jn{}{{Jj{c}}{Jl{e}}}}}}{b{c}}e}{{Cb{{Cb{ff}}C`}}}JhIl}{{{b{{Ij{eicg}}}}{b{k}}m}{{Cb{{Cb{ff}}C`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}Bb}{}{}}{ce{}{}}`````````````````````````````{{{b{c}}d}f{}}0000{{{b{c}}}{{b{h}}}{}}0000{{{b{jc}}}{{b{jh}}}{}}0000{{{b{Kb}}}{{b{{Bn{Kd}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{jc}}}{{b{je}}}{}{}}0000{{{b{Kb}}}{{Cb{fHf}}}}{{{b{{Kf{ceg}}}}}{{Kf{ceg}}}{BbAl}{BbAn}{BbB`}}{{{b{{Kh{ceg}}}}}{{Kh{ceg}}}{AlBb}{AnBb}{B`Bb}}{{{b{{Kj{c}}}}}{{Kj{c}}}{BbKl}}{{{b{Kb}}}Kb}{{{b{Kn}}}Kn}{{{b{c}}{b{je}}}f{}{}}0000{{{b{Kb}}{b{Kb}}}Hh}{{}Kb}{Bl{{b{c}}}{}}0000{Bl{{b{jc}}}{}}0000{c{{Cb{{Kf{egi}}}}}Fn{G`GbAl}{G`GbAn}B`}{c{{Cb{{Kh{egi}}}}}Fn{AlG`Gb}{AnG`Gb}B`}{{cHjHl}{{Cb{KbHf}}}Hn}{{{b{{Bn{c}}}}}{{Cb{cC`}}}Kl}{{{b{{Bn{e}}}}}{{Cb{eC`}}}An{Kl{L`{c}}}}{{{b{{Bn{Kb}}}}}{{Cb{KbC`}}}}{{{b{Ej}}{b{{Gl{c}}}}}{{Cb{cC`}}}Kl}{{{b{c}}{b{e}}}{{Cb{eC`}}}An{Kl{L`{c}}}}{{{b{c}}{b{e}}}{{Cb{KbC`}}}An{AlG`}}{Blf}0000{{{b{{Kh{ceg}}}}}{{En{{b{c}}}}}AlAnB`}{{{b{{Kf{ceg}}}}{b{{Kf{ceg}}}}}Cd{CfAl}{CfAn}{CfB`}}{{{b{{Kh{ceg}}}}{b{{Kh{ceg}}}}}Cd{AlCf}{AnCf}{B`Cf}}{{{b{{Kj{c}}}}{b{{Kj{c}}}}}Cd{CfKl}}{{{b{Kb}}{b{Kb}}}Cd}{{{b{Kn}}{b{Kn}}}Cd}{{{b{c}}{b{e}}}Cd{}{}}00000000000000{{{b{{Kf{ceg}}}}{b{jDb}}}Dd{DfAl}{DfAn}{DfB`}}{{{b{{Kh{ceg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}}{{{b{{Kj{c}}}}{b{jDb}}}Dd{DfKl}}{{{b{Kb}}{b{jDb}}}Dd}{{{b{Kn}}{b{jDb}}}Dd}{cc{}}0000{{{`{Kbc}}}KbIl}{{{b{{Kf{ceg}}}}{b{ji}}}f{BfAl}{BfAn}{BfB`}Dj}{{{b{{Kh{ceg}}}}{b{ji}}}f{AlBf}{AnBf}{B`Bf}Dj}{{{b{Kb}}{b{jc}}}fDj}{{{b{Kn}}{b{jc}}}fDj}``{{{b{{Kh{ceg}}}}}{{b{e}}}AlAnB`}{{}Bl}0000{ce{}{}}0000{{{Dl{c}}}{{Dl{h}}}{}}0000{{{Dn{c}}}{{Dn{h}}}{}}0000{{{E`{c}}}{{E`{h}}}{}}0000{{c{Lb{ecg}}}{{Kh{ecg}}}AnAlB`}{{{b{Kb}}{b{Kb}}}{{En{Hh}}}}``{{{b{{Kf{ceg}}}}i}Cb{G`GbAl}{G`GbAn}B`Gd}{{{b{{Kh{ceg}}}}i}Cb{AlG`Gb}{AnG`Gb}B`Gd}{{{b{Kb}}cHj}{{Cb{fHf}}}Id}{{{b{Kb}}Hj}Bl}{{{b{c}}}e{}{}}0000{{{b{{Kh{ceg}}}}}BlAlAnB`}{c{{Cb{e}}}{}{}}000000000{{{b{c}}}Fh{}}0000=====```````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ld{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}}{{Ld{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Ld{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ld{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Ld{cieg}}}}{b{{Ld{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{{Ld{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Ld{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Ld{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{Blm}{{Cb{{Ld{gAaco}}C`}}}{AnFd}{{Cl{c}}}Al{{Cl{g}}}{{Cl{{Ch{ei}}}}}{{D`{}{{Cn{k}}}}}B`{{Fl{gco}}}}{{{b{{Ld{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Ld{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{Ld{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Ld{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Ld{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Ld{cieg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{j{Ld{cieg}}}}ko}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{}{{Cl{m}}}}{{{b{{Ld{cieg}}}}mAa}{{Cb{CdC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}}{{{b{{Ld{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}mAa}{{Cb{{Ld{cieg}}C`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Fb{{En{{b{o}}}}}{{F`{{En{o}}}}}}}}{{{b{j{Ld{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Ld{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{j{Ld{cieg}}}}k}{{Bj{moAa}}}Al{AnFd}B`{{Fl{ceg}}}{}{}{}{}}{{{b{{Ld{cieg}}}}m}{{Bj{{b{o}}AaAc}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}{}}{{{b{j{Ld{cieg}}}}mAa}{{Cb{{Bj{cff}}C`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Fb{{En{{b{o}}}}}{{F`{{En{o}}}}}}}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}","D":"AFb","p":[[1,"reference"],[5,"Private",630],[1,"unit"],[10,"Any",631],[0,"mut"],[17,"Element"],[17,"Index"],[17,"NodeValue"],[17,"MembershipProof"],[17,"BatchMembershipProof"],[17,"Commitment"],[10,"MerkleTreeScheme",0],[5,"BigUint",632],[10,"Element",0],[10,"Index",0],[10,"NodeValue",0],[10,"Clone",633],[10,"Eq",634],[10,"Hash",635],[10,"MerkleCommitment",0],[6,"LookupResult",0],[1,"usize"],[1,"slice"],[6,"MerkleTreeError",143],[6,"Result",636],[1,"bool"],[10,"PartialEq",634],[1,"tuple"],[10,"AppendableMerkleTreeScheme",0],[10,"Borrow",637],[17,"Item"],[10,"IntoIterator",638],[5,"Formatter",639],[8,"Result",639],[10,"Debug",639],[10,"ForgetableMerkleTreeScheme",0],[10,"Hasher",635],[5,"Box",640],[5,"Arc",641],[5,"Rc",642],[10,"ForgetableUniversalMerkleTreeScheme",0],[17,"NonMembershipProof"],[17,"BatchNonMembershipProof"],[10,"UniversalMerkleTreeScheme",0],[1,"u64"],[10,"PersistentUniversalMerkleTreeScheme",0],[6,"Option",643],[17,"Output"],[10,"FnOnce",644],[10,"ToTraversalPath",0],[5,"Vec",645],[5,"TypeId",631],[5,"MerkleTree",97],[10,"DigestAlgorithm",0],[10,"Deserializer",646],[10,"CanonicalSerialize",647],[10,"CanonicalDeserialize",647],[10,"Serializer",648],[10,"Error",649],[6,"RescueError",650],[5,"String",651],[5,"Interval",177],[10,"Field",652],[5,"HasherNode",205],[8,"Output",653],[10,"Digest",654],[6,"SerializationError",655],[6,"Ordering",634],[6,"Compress",647],[6,"Validate",647],[10,"Read",656],[10,"HasherDigest",205],[1,"str"],[10,"Write",656],[5,"TaggedBase64",657],[5,"LightWeightMerkleTree",275],[5,"NMT",321],[10,"Namespace",321],[17,"Namespace"],[10,"Namespaced",321],[10,"BindNamespace",321],[17,"Leaf"],[17,"Node"],[10,"NamespaceProof",321],[17,"NamespaceProof"],[17,"NamespaceId"],[10,"NamespacedMerkleTreeScheme",321],[10,"ExactSizeIterator",658],[5,"Sha3Node",384],[1,"u8"],[6,"MerkleNode",384,659],[5,"MerkleProof",384,659],[5,"RescueHash",384],[10,"RescueParameter",650],[5,"Sha3Digest",384],[10,"From",660],[8,"MerklePath",384,659],[5,"UniversalMerkleTree",580],[5,"HasherDigestAlgorithm",205],[15,"Branch",574],[15,"Leaf",574],[15,"ForgettenSubtree",574]],"r":[[15,143],[384,0],[386,0],[387,0],[389,0],[390,0],[392,0],[395,0],[396,0],[397,659],[398,659],[399,659],[400,97],[401,0],[402,0],[410,0],[411,580],[412,0],[512,0],[513,0]],"b":[[128,"impl-IntoIterator-for-%26MerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[129,"impl-IntoIterator-for-MerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[163,"impl-Debug-for-MerkleTreeError"],[164,"impl-Display-for-MerkleTreeError"],[241,"impl-Display-for-HasherNode%3CH%3E"],[242,"impl-Debug-for-HasherNode%3CH%3E"],[266,"impl-TryFrom%3CTaggedBase64%3E-for-HasherNode%3CH%3E"],[267,"impl-TryFrom%3C%26TaggedBase64%3E-for-HasherNode%3CH%3E"],[306,"impl-IntoIterator-for-%26LightWeightMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[307,"impl-IntoIterator-for-LightWeightMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[465,"impl-DigestAlgorithm%3CInterval%3CF%3E,+u64,+F%3E-for-RescueHash%3CF%3E"],[466,"impl-DigestAlgorithm%3CF,+I,+F%3E-for-RescueHash%3CF%3E"],[468,"impl-DigestAlgorithm%3CInterval%3CF%3E,+u64,+F%3E-for-RescueHash%3CF%3E"],[469,"impl-DigestAlgorithm%3CF,+I,+F%3E-for-RescueHash%3CF%3E"],[610,"impl-IntoIterator-for-UniversalMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[611,"impl-IntoIterator-for-%26UniversalMerkleTree%3CE,+H,+I,+ARITY,+T%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAMUBOgAQAAAAGwAAAB0AAwAiAAEAJQABACoABAA1AAAAOQAAAEEAAABDAAIAVgAAAFgAAgBhAAAAYwATAHgAAAB6AAIAfgAGAIYACQCYAA4AqAAAAKoABwC0AA0AwwABAMYABwDVAB4A9gAEAP0AFgAVARMAKgEAACwBAgAwAQYAOAEJAE4BEgBnAQMAbAEDAHEBAAB1AQYAfQEAAH8BAgCDAQEAhgEBAIkBAACMAQEAkQECAJsBQQDeARgA/AEEAAQCBAAOAg4AHgIAACECCAArAhMARgISAFoCAABcAgIAYAIGAGgCCQBzAgMA"}],\ -["jf_pcs",{"t":"RRRRERRKRRRKKRMMMHMCMMNNNNNMMMMCMCCMMNMCMPPPPGPPPNNNNNNNNNNNNNNNNNNIFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNFEEEEFFFEEEEEEFFFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOHOOOOOONNNNNNNNNNNNNNNNHOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNN","n":["BatchCommitment","BatchProof","Commitment","Evaluation","PCSError","Point","Polynomial","PolynomialCommitmentScheme","Proof","ProverParam","SRS","StructuredReferenceString","UnivariatePCS","VerifierParam","batch_commit","batch_open","batch_verify","checked_fft_size","commit","errors","extract_prover_param","extract_verifier_param","load_srs_from_file","load_srs_from_file","multi_open","multi_open_rou","multi_open_rou_eval_domain","multi_open_rou_evals","multi_open_rou_proofs","multi_point_open","multi_point_verify","multilinear_kzg","open","prelude","transcript","trim","trim","trim_fft_size","trim_with_verifier_degree","univariate_kzg","verify","InvalidParameters","InvalidProof","InvalidProver","InvalidVerifier","PCSError","SerializationError","TranscriptError","UpstreamError","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","from","from","init","into","to_string","try_from","try_into","type_id","vzip","MLE","MultilinearKzgBatchProof","MultilinearKzgPCS","MultilinearKzgProof","batch_check","batch_check","batch_commit","batch_open","batch_verify","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","commit","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","hash","init","init","init","into","into","into","open","proof","proofs","q_x_commit","q_x_opens","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","to_owned","to_owned","trim","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","Commitment","MLE","MultilinearKzgBatchProof","MultilinearKzgPCS","MultilinearKzgProof","MultilinearProverParam","MultilinearUniversalParams","MultilinearVerifierParam","PCSError","PolynomialCommitmentScheme","StructuredReferenceString","UnivariateKzgBatchProof","UnivariateKzgPCS","UnivariateKzgProof","UnivariateProverParam","UnivariateUniversalParams","UnivariateVerifierParam","as_ref","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","beta_h","beta_h","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","check","check","check","check","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extract_prover_param","extract_prover_param","extract_verifier_param","extract_verifier_param","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","g","g","g","get_batched_nv","h","h","h","h","h_mask","h_mask","hash","init","init","init","init","init","init","init","into","into","into","into","into","into","into","max_degree","merge_polynomials","num_vars","num_vars","powers_of_g","powers_of_g","powers_of_g","powers_of_g","powers_of_h","powers_of_h","prover_param","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","trim","trim","trim_with_verifier_degree","trim_with_verifier_degree","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","IOPTranscript","InvalidTranscript","SerializationError","TranscriptError","append_message","append_serializable_element","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from","get_and_append_byte_challenge","get_and_append_challenge","init","init","into","into","new","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","UnivariateKzgBatchProof","UnivariateKzgPCS","UnivariateKzgProof","batch_check","batch_commit","batch_open","batch_verify","borrow","borrow","borrow_mut","borrow_mut","check","clone","clone_into","commit","deref","deref","deref_mut","deref_mut","deserialize_with_mode","drop","drop","eq","equivalent","equivalent","fmt","from","from","hash","init","init","into","into","multi_open","multi_open_rou_evals","multi_open_rou_proofs","multi_point_open","multi_point_verify","open","proof","serialize_with_mode","serialized_size","to_owned","trim","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip"],"q":[[0,"jf_pcs"],[41,"jf_pcs::errors"],[67,"jf_pcs::multilinear_kzg"],[143,"jf_pcs::prelude"],[357,"jf_pcs::transcript"],[397,"jf_pcs::univariate_kzg"],[450,"core::result"],[451,"core::borrow"],[452,"alloc::vec"],[453,"rand_core"],[454,"core::option"],[455,"ark_poly::domain::radix2"],[456,"core::error"],[457,"core::fmt"],[458,"ark_serialize::error"],[459,"jf_pcs::transcript::errors"],[460,"alloc::string"],[461,"core::any"],[462,"ark_ec::pairing"],[463,"core::iter::traits::iterator"],[464,"core::marker"],[465,"core::clone"],[466,"ark_serialize"],[467,"std::io"],[468,"core::cmp"],[469,"core::hash"],[470,"jf_pcs::structs"],[471,"ark_ec"],[472,"jf_pcs::multilinear_kzg::srs"],[473,"jf_pcs::univariate_kzg::srs"],[474,"core::default"],[475,"ark_poly::evaluations::multivariate::multilinear::dense"],[476,"ark_ff::fields::prime"],[477,"jf_pcs::multilinear_kzg::util"]],"i":[58,58,58,58,0,58,58,0,58,15,58,0,0,15,58,58,58,0,58,0,15,15,58,15,58,59,59,59,59,59,59,0,58,0,0,58,15,59,15,0,58,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,29,32,60,60,60,60,29,32,60,29,32,29,32,29,32,29,32,60,60,29,32,60,29,32,29,32,60,29,32,29,32,29,29,32,32,29,32,60,29,32,29,60,29,32,60,29,32,60,32,29,32,32,29,32,29,32,29,32,60,60,29,32,60,29,32,60,29,32,60,60,29,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,44,45,46,41,47,48,49,47,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,41,47,48,49,41,41,47,47,48,48,49,49,44,47,44,47,44,45,46,41,47,48,49,44,45,46,41,41,47,48,49,45,46,49,0,45,46,47,49,44,46,41,44,45,46,41,47,48,49,44,45,46,41,47,48,49,47,0,45,46,45,47,48,49,47,49,44,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,47,44,47,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,0,24,24,0,54,54,24,54,24,54,54,54,24,54,24,54,24,54,24,24,24,24,54,54,54,24,54,24,54,54,54,24,24,54,24,54,24,54,24,54,0,0,0,57,61,61,61,61,57,61,57,57,57,57,61,61,57,61,57,57,61,57,57,57,57,57,61,57,57,61,57,61,57,61,61,61,61,61,61,57,57,57,57,61,61,57,61,57,61,57,61,61,57],"f":"``````````````{{c{d{{b{e}}}}}{{h{gf}}}j{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}}{{h{{n{k{l{m}}}}f}}}j{}{}{}{}{}}{{d{d{c}}{d{{b{e}}}}{d{{b{g}}}}{d{i}}{d{A`k}}}{{h{Abf}}}{}{}{}{}{AdAf}}{Ah{{h{Ahf}}}}{{c{d{e}}}{{h{gf}}}j{}{}}`{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}c{}{}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}e{}{}}{{Ah{Bb{{d{B`}}}}}{{h{cf}}}{}}{{Ah{Bb{{d{B`}}}}}{{h{{An{}{{Aj{c}}{Al{e}}}}f}}}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{{l{i}}{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{n{{l{i}}{l{g}}}}f}}}j{}{}{}}{{AhAh}{{h{{Bd{c}}f}}}{}}{{{d{c}}Ah{d{{Bd{e}}}}}{{h{{l{e}}f}}}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{l{i}}f}}}j{}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{i{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}{d{k}}}{{h{Abf}}}j{}{}{}{}}`{{c{d{e}}{d{g}}}{{h{{n{ik}}f}}}j{}{}{}{}}``{{eAh{Bb{Ah}}}{{h{nf}}}{}{{j{c}}}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}{{h{{n{ce}}f}}}{}{}}{{eAh}{{h{nf}}}{}{{j{c}}}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}AhAh}{{h{{n{ce}}f}}}{}{}}`{{d{d{c}}{d{e}}{d{g}}{d{i}}}{{h{Abf}}}{}{}{}{}}````````{{{d{c}}}{{d{Bf}}}{}}{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{Ah{{d{c}}}{}}{Ah{{d{A`c}}}{}}{AhBh}{{{d{f}}{d{A`Bj}}}Bl}0{cc{}}{Bnf}{C`f}{{}Ah}{ce{}{}}{{{d{c}}}Cb{}}{c{{h{e}}}{}{}}0{{{d{c}}}Cd{}}3````{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Cj{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{D`{c}}}}}}}}Cn}}{{c{d{{b{e}}}}}{{h{gf}}}j{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}}{{h{{n{k{l{m}}}}f}}}j{}{}{}{}{}}{{d{d{c}}{d{{b{e}}}}{d{b}}{d{g}}{d{A`i}}}{{h{Abf}}}{}{}{}{AdAf}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{{{d{{Cj{c}}}}}{{h{BhBn}}}Cf}{{{d{{D`{c}}}}}{{h{BhBn}}}Cf}{{{d{{Cj{c}}}}}{{Cj{c}}}{DbCf}}{{{d{{D`{c}}}}}{{D`{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}0{{c{d{e}}}{{h{gf}}}j{}{}}{Ah{{d{c}}}{}}00{Ah{{d{A`c}}}{}}00{{cDdDf}{{h{{Cj{e}}Bn}}}DhCf}{{cDdDf}{{h{{D`{e}}Bn}}}DhCf}{AhBh}00{{{d{{Cj{c}}}}{d{{Cj{c}}}}}Ab{DjCf}}{{{d{{D`{c}}}}{d{{D`{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}000{{{d{{Cj{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{D`{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}00{{{d{{Cj{c}}}}{d{A`e}}}BhCfDn}{{}Ah}00{ce{}{}}00{{c{d{e}}{d{g}}}{{h{{n{ik}}f}}}j{}{}{}{}}````{{{d{{Cj{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{D`{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Cj{c}}}}Dd}AhCf}{{{d{{D`{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}0{{eAh{Bb{Ah}}}{{h{nf}}}{}{{j{c}}}}{c{{h{e}}}{}{}}00000{{{d{c}}}Cd{}}00{{d{d{c}}{d{e}}d{d{g}}}{{h{Abf}}}{}{}{}}:::`````````````````{{{d{{Eb{e}}}}}{{d{c}}}Ed{{Cf{}{{Ef{c}}}}}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Eh{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Ej{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{El{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Eb{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{En{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{F`{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Fb{c}}}}}}}}Cn}}``{{{d{c}}}{{d{e}}}{}{}}000000{{{d{A`c}}}{{d{A`e}}}{}{}}000000{{{d{{Eh{c}}}}}{{h{BhBn}}}Cf}{{{d{{Ej{c}}}}}{{h{BhBn}}}Cf}{{{d{{El{c}}}}}{{h{BhBn}}}Cf}{{{d{{Eb{c}}}}}{{h{BhBn}}}Cf}{{{d{{En{c}}}}}{{h{BhBn}}}Cf}{{{d{{F`{c}}}}}{{h{BhBn}}}Cf}{{{d{{Fb{c}}}}}{{h{BhBn}}}Cf}{{{d{{Eh{c}}}}}{{Eh{c}}}{DbCf}}{{{d{{Ej{c}}}}}{{Ej{c}}}{DbCf}}{{{d{{El{c}}}}}{{El{c}}}{DbCf}}{{{d{{Eb{c}}}}}{{Eb{c}}}{DbCf}}{{{d{{En{c}}}}}{{En{c}}}{DbCf}}{{{d{{F`{c}}}}}{{F`{c}}}{DbCf}}{{{d{{Fb{c}}}}}{{Fb{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}000000{{}{{Eb{c}}}Cf}{{}{{En{c}}}{FdCf}}{{}{{F`{c}}}{FdCf}}{{}{{Fb{c}}}Cf}{Ah{{d{c}}}{}}000000{Ah{{d{A`c}}}{}}000000{{cDdDf}{{h{{Eh{e}}Bn}}}DhCf}{{cDdDf}{{h{{Ej{e}}Bn}}}DhCf}{{cDdDf}{{h{{El{e}}Bn}}}DhCf}{{cDdDf}{{h{{Eb{e}}Bn}}}DhCf}{{cDdDf}{{h{{En{e}}Bn}}}DhCf}{{cDdDf}{{h{{F`{e}}Bn}}}DhCf}{{cDdDf}{{h{{Fb{e}}Bn}}}DhCf}{AhBh}000000{{{d{{Eb{c}}}}{d{{Eb{c}}}}}Ab{DjCf}}{{{d{{En{c}}}}{d{{En{c}}}}}Ab{DjCf}}{{{d{{F`{c}}}}{d{{F`{c}}}}}Ab{DjCf}}{{{d{{Fb{c}}}}{d{{Fb{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}0000000{{{d{{Eh{c}}}}Ah}eCf{}}{{{d{{En{c}}}}Ah}eCf{}}10{{{d{{Eh{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Ej{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{El{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Eb{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{En{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{F`{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Fb{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}000{c{{Eb{e}}}Ed{{Cf{}{{Ef{c}}}}}}111```{{AhAh}Ah}``````{{{d{{Eb{c}}}}{d{A`e}}}BhCfDn}{{}Ah}000000{ce{}{}}000000{{{d{{En{c}}}}}AhCf}{{{d{{b{{Ff{c}}}}}}}{{h{{Fh{c}}f}}}Fj}`````````{{{d{{Eh{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Ej{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{El{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Eb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{En{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{F`{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Fb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Eh{c}}}}Dd}AhCf}{{{d{{Ej{c}}}}Dd}AhCf}{{{d{{El{c}}}}Dd}AhCf}{{{d{{Eb{c}}}}Dd}AhCf}{{{d{{En{c}}}}Dd}AhCf}{{{d{{F`{c}}}}Dd}AhCf}{{{d{{Fb{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}000000{{{d{{Eh{c}}}}Ah}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{En{c}}}}Ah}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{Eh{c}}}}AhAh}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{En{c}}}}AhAh}{{h{{n{eg}}f}}}Cf{}{}}{c{{h{e}}}{}{}}0000000000000{{{d{c}}}Cd{}}000000{ce{}{}}000000````{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{{b{Fn}}}}}{{h{BhC`}}}Fj}{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{e}}}{{h{BhC`}}}FjG`}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{{Fl{c}}}}}{{Fl{c}}}{DbFj}}{{{d{c}}{d{A`e}}}Bh{}{}}{Ah{{d{c}}}{}}0{Ah{{d{A`c}}}{}}0{AhBh}0{{{d{C`}}{d{A`Bj}}}Bl}0{BnC`}{cc{}}0{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{A`{b{Fn}}}}}{{h{BhC`}}}Fj}{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}}{{h{cC`}}}Fj}{{}Ah}0??{{{d{{b{Fn}}}}}{{Fl{c}}}Fj}{{{d{c}}}e{}{}}{{{d{c}}}Cb{}}{c{{h{e}}}{}{}}000{{{d{c}}}Cd{}}0{ce{}{}}0```{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Gb{c}}}}}}}}Cn}}{{e{d{{b{g}}}}}{{h{if}}}Cf{{j{{F`{c}}}}}{}{}}{{e{d{g}}{d{{b{i}}}}{d{{b{k}}}}}{{h{{n{m{l{o}}}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}{}}{{{d{{Fb{c}}}}{d{e}}{d{{b{g}}}}{d{b}}{d{i}}{d{A`k}}}{{h{Abf}}}Cf{}{}{}{AdAf}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{{Gb{c}}}}}{{h{BhBn}}}Cf}{{{d{{Gb{c}}}}}{{Gb{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}{{e{d{g}}}{{h{if}}}Cf{{j{{F`{c}}}}}{}{}}{Ah{{d{c}}}{}}0{Ah{{d{A`c}}}{}}0{{cDdDf}{{h{{Gb{e}}Bn}}}DhCf}{AhBh}0{{{d{{Gb{c}}}}{d{{Gb{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}0{{{d{{Gb{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}0{{{d{{Gb{c}}}}{d{A`e}}}BhCfDn}{{}Ah}0{ce{}{}}0{{e{d{g}}{d{{b{i}}}}}{{h{{n{{l{k}}{l{m}}}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}}{{{d{c}}Ah{d{{Bd{e}}}}}{{h{{l{e}}f}}}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{l{i}}f}}}j{}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{i{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}{d{k}}}{{h{Abf}}}j{}{}{}{}}{{e{d{g}}{d{i}}}{{h{{n{km}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}}`{{{d{{Gb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Gb{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}{{eAh{Bb{Ah}}}{{h{{n{{F`{g}}{Fb{g}}}}f}}}{}{{j{c}}}Cf}{c{{h{e}}}{}{}}000{{{d{c}}}Cd{}}0{{{d{{Fb{c}}}}{d{e}}{d{g}}d{d{i}}}{{h{Abf}}}Cf{}{}{}}==","D":"ACh","p":[[1,"slice"],[1,"reference"],[6,"PCSError",41],[6,"Result",450],[10,"Borrow",451],[5,"Vec",452],[1,"tuple"],[0,"mut"],[1,"bool"],[10,"RngCore",453],[10,"CryptoRng",453],[1,"usize"],[17,"ProverParam"],[17,"VerifierParam"],[10,"StructuredReferenceString",0],[1,"str"],[6,"Option",454],[5,"Radix2EvaluationDomain",455],[10,"Error",456],[1,"unit"],[5,"Formatter",457],[8,"Result",457],[6,"SerializationError",458],[6,"TranscriptError",357,459],[5,"String",460],[5,"TypeId",461],[10,"Pairing",462],[17,"Item"],[5,"MultilinearKzgProof",67],[10,"Iterator",463],[10,"Send",464],[5,"MultilinearKzgBatchProof",67],[10,"Clone",465],[6,"Compress",466],[6,"Validate",466],[10,"Read",467],[10,"PartialEq",468],[10,"Debug",457],[10,"Hasher",469],[10,"Write",467],[5,"Commitment",143,470],[10,"AffineRepr",471],[17,"G1Affine"],[5,"MultilinearUniversalParams",143,472],[5,"MultilinearProverParam",143,472],[5,"MultilinearVerifierParam",143,472],[5,"UnivariateUniversalParams",143,473],[5,"UnivariateProverParam",143,473],[5,"UnivariateVerifierParam",143,473],[10,"Default",474],[8,"MLE",67],[5,"DenseMultilinearExtension",475],[10,"PrimeField",476],[5,"IOPTranscript",357],[1,"u8"],[10,"CanonicalSerialize",466],[5,"UnivariateKzgProof",397],[10,"PolynomialCommitmentScheme",0],[10,"UnivariatePCS",0],[5,"MultilinearKzgPCS",67],[5,"UnivariateKzgPCS",397]],"r":[[4,41],[143,470],[144,67],[145,67],[146,67],[147,67],[148,472],[149,472],[150,472],[151,41],[152,0],[153,0],[154,397],[155,397],[156,397],[157,473],[158,473],[159,473],[271,477],[294,477],[360,459]],"b":[[55,"impl-Display-for-PCSError"],[56,"impl-Debug-for-PCSError"],[58,"impl-From%3CSerializationError%3E-for-PCSError"],[59,"impl-From%3CTranscriptError%3E-for-PCSError"],[375,"impl-Display-for-TranscriptError"],[376,"impl-Debug-for-TranscriptError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACYBHwAFAAAAMgAHADsAAgA/AAQASAABAE0ACwBaABIAcAADAHwABQCDAAgAjQACAJEAAwCYAAUAoQAHAKsATgD+AAYACQEAABcBBwAxARQASgEbAGwBDgB/AQEAhAEJAJEBAACVAQYAnQEKAKoBAgCxAQAAtgECALoBBQDBAQEA"}],\ -["jf_plonk",{"t":"EGPPNNNNNCNNCNNNNNNNCNNNNNNNNCNCNNNNCCFKFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNSPPPPPPPPPPPGPPPGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRFRRKRRNNCNNNNNNNNNNNNNNMNMNCNNNNMNNNFFNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIIFFFFFFFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOOKFFFNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNN","n":["PlonkError","PlonkType","TurboPlonk","UltraPlonk","__clone_box","as_any","as_any_mut","borrow","borrow_mut","circuit","clone","clone_into","constants","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","errors","fmt","from","hash","init","into","into_any","into_any_arc","into_any_rc","proof_system","to_owned","transcript","try_from","try_into","type_id","vzip","plonk_verifier","transcript","BatchProofVar","BatchableCircuit","VerifyingKeyVar","__clone_box","__clone_box","aggregate_verify_keys","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","partial_verify_circuit","to_owned","to_owned","to_vec","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RescueTranscriptVar","as_any","as_any_mut","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","try_from","try_into","type_id","vzip","KECCAK256_STATE_SIZE","CircuitError","DivisionError","DomainCreationError","IndexError","IndexTooLarge","InvalidParameters","IoError","IteratorOutOfRange","NonNativeFieldOverflow","PCSError","ParameterError","PlonkError","PublicInputsDoNotMatch","RescueError","SerializationError","SnarkError","SnarkError","SnarkLookupUnsupported","WrongProof","WrongQuotientPolyDegree","as_any","as_any","as_any_mut","as_any_mut","as_error_source","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Error","PlonkKzgSnark","Proof","ProvingKey","UniversalSNARK","UniversalSRS","VerifyingKey","as_any","as_any_mut","batch_arg","batch_prove","batch_verify","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","new","preprocess","preprocess","prove","prove","structs","try_from","try_into","type_id","universal_setup","verify","verify","verify_batch_proof","vzip","BatchArgument","Instance","__clone_box","aggregate_verify_keys","as_any","as_any","as_any_mut","as_any_mut","batch_prove","borrow","borrow","borrow_mut","borrow_mut","build_batch_proof_and_vks_for_test","circuit_mut_ref","clone","clone_into","decide","deref","deref","deref_mut","deref_mut","drop","drop","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_rc","into_any_rc","partial_verify","setup_instance","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_key_ref","vzip","vzip","BatchProof","CommitKey","OpenKey","PlookupEvaluations","PlookupProof","PlookupProvingKey","PlookupVerifyingKey","Proof","ProofEvaluations","ProvingKey","UniversalSrs","VerifyingKey","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","beta_h","beta_h","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","check","check","check","check","check","check","check","check","check","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","convert_te_coordinates_to_scalars","create_variables","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","domain_size","drop","drop","drop","drop","drop","drop","drop","drop","drop","dummy","dummy","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","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_str","from_str","g","h","h","hash","hash","hash","hash","hash","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_empty","is_merged","k","len","num_inputs","open_key","opening_proof","perm_next_eval","plookup_proof","plookup_vk","poly_evals","powers_of_g","powers_of_g","powers_of_g","powers_of_h","powers_of_h","prod_perm_poly_comm","selector_comms","serialize","serialize","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","shifted_opening_proof","sigma_comms","split_quot_poly_comms","tag","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","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_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","vk","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wire_sigma_evals","wires_evals","wires_poly_comms","PlonkTranscript","RescueTranscript","SolidityTranscript","StandardTranscript","append_commitment","append_commitment","append_commitment","append_commitments","append_field_elem","append_field_elem","append_field_elem","append_field_elems","append_message","append_message","append_message","append_message","append_plookup_evaluations","append_plookup_evaluations","append_proof_evaluations","append_proof_evaluations","append_vk_and_pub_input","append_vk_and_pub_input","append_vk_and_pub_input","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","get_challenge","get_challenge","get_challenge","get_challenge","get_n_challenges","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","new","new","new","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"jf_plonk"],[36,"jf_plonk::circuit"],[38,"jf_plonk::circuit::plonk_verifier"],[97,"jf_plonk::circuit::transcript"],[115,"jf_plonk::constants"],[116,"jf_plonk::errors"],[183,"jf_plonk::proof_system"],[220,"jf_plonk::proof_system::batch_arg"],[267,"jf_plonk::proof_system::structs"],[618,"jf_plonk::transcript"],[701,"dyn_clone::sealed"],[702,"core::any"],[703,"jf_relation::constraint_system"],[704,"core::fmt"],[705,"core::result"],[706,"core::hash"],[707,"alloc::boxed"],[708,"alloc::sync"],[709,"alloc::rc"],[710,"alloc::vec"],[711,"jf_relation"],[712,"ark_ec::pairing"],[713,"jf_plonk::circuit::plonk_verifier::structs"],[714,"core::clone"],[715,"ark_ff::fields::prime"],[716,"core::cmp"],[717,"jf_relation::gadgets::ecc::conversion"],[718,"ark_ec::models::short_weierstrass"],[719,"ark_ec::models::short_weierstrass::affine"],[720,"jf_relation::gadgets::ecc"],[721,"jf_relation::gadgets::ultraplonk::mod_arith"],[722,"jf_rescue"],[723,"ark_ec::models::twisted_edwards"],[724,"core::error"],[725,"jf_pcs::errors"],[726,"ark_serialize::error"],[727,"std::io::error"],[728,"alloc::string"],[729,"rand_core"],[730,"core::option"],[731,"jf_plonk::proof_system::snark"],[732,"core::iter::traits::iterator"],[733,"core::marker"],[734,"ark_ff::fields"],[735,"serde::de"],[736,"ark_serialize"],[737,"std::io"],[738,"serde::ser"],[739,"tagged_base64"],[740,"jf_plonk::transcript::rescue"],[741,"jf_pcs::structs"],[742,"jf_plonk::transcript::solidity"],[743,"jf_plonk::transcript::standard"]],"i":[0,0,6,6,6,6,6,6,6,0,6,6,0,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,0,6,0,6,6,6,6,0,0,0,0,0,23,18,17,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,23,23,18,18,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,18,18,23,18,18,23,18,23,18,23,18,23,18,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,44,44,44,44,44,44,44,44,44,44,45,0,44,44,44,0,44,45,44,45,44,45,44,45,44,44,45,44,45,44,45,44,45,44,45,44,44,45,45,44,44,44,44,44,44,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,89,0,89,89,0,89,89,59,59,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,89,59,89,59,0,59,59,59,89,89,59,59,59,0,0,60,90,90,60,90,60,90,90,60,90,60,0,60,60,60,90,90,60,90,60,90,60,90,60,90,60,90,60,90,60,90,90,60,90,90,60,90,60,90,60,90,60,60,90,60,0,0,0,0,0,0,0,0,0,0,0,0,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,61,62,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,30,52,69,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,52,56,67,52,69,70,51,71,30,72,30,56,67,52,69,70,51,71,30,72,52,30,56,67,52,69,70,51,71,30,72,56,56,56,67,67,67,52,52,52,69,69,69,70,70,70,51,51,51,71,71,71,30,30,30,72,72,72,56,56,67,52,52,69,70,51,71,30,72,56,67,52,52,69,70,51,71,30,72,56,52,62,61,62,56,67,52,69,70,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,52,30,30,52,30,30,56,69,56,30,56,61,91,62,61,62,56,30,56,52,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,30,56,56,52,56,67,52,69,70,51,71,30,72,56,52,56,56,56,56,67,52,52,52,69,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,51,56,67,52,69,70,51,71,30,72,69,69,56,0,0,0,0,83,85,86,86,83,85,86,86,86,83,85,87,83,86,83,86,83,85,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,86,83,85,87,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87],"f":"````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}`{{{b{l}}}l}{{{b{c}}{b{je}}}f{}{}}`{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{{{b{l}}{b{l}}}A`}{{{b{c}}{b{e}}}A`{}{}}00`{{{b{l}}{b{jAb}}}{{Af{fAd}}}}{cc{}}{{{b{l}}{b{jc}}}fAh}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}`{{{b{c}}}e{}{}}`{c{{Af{e}}}{}{}}0{{{b{c}}}B`{}}6`````{{{b{c}}d}f{}}0{{{b{jBb}}{b{{Bf{{Bd{c}}}}}}{b{{Bf{{Bd{c}}}}}}}{{Af{{Bh{{Bd{c}}}}Bj}}}Bl}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{Bn{c}}}}}{{Bn{c}}}{C`Cb}}{{{b{{Bd{c}}}}}{{Bd{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}0{n{{b{c}}}{}}0{n{{b{jc}}}{}}0{nf}0{{{b{{Bn{c}}}}{b{{Bn{c}}}}}A`{CdCb}}{{{b{{Bd{c}}}}{b{{Bd{c}}}}}A`{CdBl}}{{{b{c}}{b{e}}}A`{}{}}00000{{{b{{Bn{c}}}}{b{jAb}}}Cf{ChCb}}{{{b{{Bd{c}}}}{b{jAb}}}Cf{ChBl}}{cc{}}0{{}n}0{ce{}{}}0{{{Aj{c}}}{{Aj{h}}}{}}0{{{Al{c}}}{{Al{h}}}{}}0{{{An{c}}}{{An{h}}}{}}0{{{b{j{Cj{c}}}}{b{{Cl{g}}}}}{{Af{{Bd{g}}Bj}}}{CbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{{b{j{Cj{c}}}}{b{{Dh{c}}}}{b{{Dh{c}}}}{b{{Bf{{Bd{g}}}}}}{b{{Bf{{Dj{c}}}}}}{b{{Bn{c}}}}Dl}{{Af{{E`{DnDn}}Bj}}}{EbCn}{{Db{}{{D`{}}}}Ed}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{{b{c}}}e{}{}}0{{{b{{Bd{c}}}}}{{Bh{Dl}}}Bl}{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}099`{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{cc{}}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}>>=3`````````````````````<<;;{{{b{c}}}{{b{Ef}}}{}};;::998877{{{b{Eh}}{b{jAb}}}Cf}0{{{b{Ej}}{b{jAb}}}Cf}0{ElEh}{BjEh}{EnEh}{EjEh}<{F`Eh}{FbEh}>==<<;;::99{{{b{c}}}Fd{}}0{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}0??```````{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}`{{{b{jc}}{b{{Bf{{b{e}}}}}}{b{{Bf{{b{{Ff{k}}}}}}}}}{{Af{{Fh{k}}Eh}}}{FjFl}Fn{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{g}}{Dd{{Df{i}}}}}}}}{{{b{{Bf{{b{{Cl{g}}}}}}}}{b{{Bf{{b{Bf}}}}}}{b{{Bf{{b{{G`{g}}}}}}}}{b{{Bf{{Gd{{Bh{Gb}}}}}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{cc{}}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}{{}{{Gf{g}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}{b{e}}}{{Af{{E`{gi}}k}}}{}Fn{}{}{}}0{{{b{jc}}{b{e}}{b{g}}{Gd{{Bh{Gb}}}}}{{Af{ik}}}{FjFl}Fn{}{}{}}0`{c{{Af{e}}}{}{}}0{{{b{c}}}B`{}}{{n{b{jc}}}{{Af{eg}}}{FlFj}{}{}}{{{b{c}}{b{Bf}}{b{e}}{Gd{{Bh{Gb}}}}}{{Af{fg}}}{}{}{}}0{{{b{{Bf{{b{{Cl{g}}}}}}}}{b{{Bf{{b{Bf}}}}}}{b{{Fh{g}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}};``{{{b{c}}d}f{}}{{{b{{Bf{{b{{Cl{c}}}}}}}}{b{{Bf{{b{{Cl{c}}}}}}}}}{{Af{{Bh{{Cl{c}}}}Eh}}}Bl}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{jc}}{b{{Bf{{Gh{i}}}}}}{b{{Bf{{Gh{i}}}}}}}{{Af{{Fh{i}}Eh}}}{FjFl}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{e}}{Dd{{Df{g}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{jc}}{b{{Gj{i}}}}n}{{Af{{E`{{Fh{i}}{Bh{{Cl{i}}}}{Bh{{Cl{i}}}}}}Eh}}}{FjFl}{EbCn}{{Db{}{{D`{e}}}}}{{Bl{}{{D`{e}}{Dd{{Df{g}}}}}}}}{{{b{j{Gh{c}}}}}{{b{jCj}}}Bl}{{{b{{Gh{c}}}}}{{Gh{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}{{{b{{Gl{c}}}}}{{Af{A`Eh}}}Bl}{n{{b{c}}}{}}0{n{{b{jc}}}{}}0{nf}0{cc{}}0{{}n}0{ce{}{}}0{{{Aj{c}}}{{Aj{h}}}{}}0{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}0{{bb{b{{Bf{{Cl{g}}}}}}{b{Bf}}{b{{Fh{g}}}}}{{Af{E`Eh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{{Gj{g}}}}CjGn}{{Af{{Gh{g}}Eh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}e{}{}}{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}0{{{b{{Gh{c}}}}}{{b{{Cl{c}}}}}Bl}99````````````{{{b{c}}d}f{}}00000000{{{b{c}}}{{b{h}}}{}}00000000{{{b{jc}}}{{b{jh}}}{}}00000000{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{G`{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Hf{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Fh{c}}}}}}}}Hd}}{e{{Af{fEn}}}Hh{{Hb{}{{H`{{b{{Hj{c}}}}}}}}Hd}}{e{{Af{fEn}}}Hh{{Hb{}{{H`{{b{{Hl{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Ff{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Hn{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Cl{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{I`{c}}}}}}}}Hd}}``{{{b{c}}}{{b{e}}}{}{}}00000000{{{b{jc}}}{{b{je}}}{}{}}00000000{{{b{{G`{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hf{c}}}}}{{Af{fEn}}}Bl}{{{b{{Fh{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hj{c}}}}}{{Af{fEn}}}Hh}{{{b{{Hl{c}}}}}{{Af{fEn}}}Hh}{{{b{{Ff{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hn{c}}}}}{{Af{fEn}}}Bl}{{{b{{Cl{c}}}}}{{Af{fEn}}}Bl}{{{b{{I`{c}}}}}{{Af{fEn}}}Bl}{{{b{{G`{c}}}}}{{G`{c}}}{C`Bl}}{{{b{{Hf{c}}}}}{{Hf{c}}}{C`Bl}}{{{b{{Fh{c}}}}}{{Fh{c}}}{C`Bl}}{{{b{{Hj{c}}}}}{{Hj{c}}}{C`Hh}}{{{b{{Hl{c}}}}}{{Hl{c}}}{C`Hh}}{{{b{{Ff{c}}}}}{{Ff{c}}}{C`Bl}}{{{b{{Hn{c}}}}}{{Hn{c}}}{C`Bl}}{{{b{{Cl{c}}}}}{{Cl{c}}}{C`Bl}}{{{b{{I`{c}}}}}{{I`{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}00000000{{{b{{Cl{g}}}}}{{Bh{c}}}Cn{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{{Fh{g}}}}{b{j{Cj{c}}}}n{Gd{c}}}{{Af{{Bn{c}}Eh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{}{{Hj{c}}}Hh}{n{{b{c}}}{}}00000000{n{{b{jc}}}{}}00000000{c{{Af{{G`{e}}}}}IbBl}{c{{Af{{Fh{e}}}}}IbBl}{{cIdIf}{{Af{{G`{e}}En}}}IhBl}{{cIdIf}{{Af{{Hf{e}}En}}}IhBl}{{cIdIf}{{Af{{Fh{e}}En}}}IhBl}{{cIdIf}{{Af{{Hj{e}}En}}}IhHh}{{cIdIf}{{Af{{Hl{e}}En}}}IhHh}{{cIdIf}{{Af{{Ff{e}}En}}}IhBl}{{cIdIf}{{Af{{Hn{e}}En}}}IhBl}{{cIdIf}{{Af{{Cl{e}}En}}}IhBl}{{cIdIf}{{Af{{I`{e}}En}}}IhBl}`{nf}00000000{n{{Fh{c}}}Bl}{{nn}{{Cl{c}}}Bl}{{{b{{G`{c}}}}{b{{G`{c}}}}}A`{CdBl}}{{{b{{Hf{c}}}}{b{{Hf{c}}}}}A`{CdBl}}{{{b{{Fh{c}}}}{b{{Fh{c}}}}}A`{CdBl}}{{{b{{Hj{c}}}}{b{{Hj{c}}}}}A`{CdHh}}{{{b{{Hl{c}}}}{b{{Hl{c}}}}}A`{CdHh}}{{{b{{Ff{c}}}}{b{{Ff{c}}}}}A`{CdBl}}{{{b{{Hn{c}}}}{b{{Hn{c}}}}}A`{CdBl}}{{{b{{Cl{c}}}}{b{{Cl{c}}}}}A`{CdBl}}{{{b{{I`{c}}}}{b{{I`{c}}}}}A`{CdBl}}{{{b{c}}{b{e}}}A`{}{}}00000000000000000000000000{{{b{{G`{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{G`{c}}}}{b{jAb}}}CfBl}{{{b{{Hf{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Fh{c}}}}{b{jAb}}}CfBl}{{{b{{Fh{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Hj{c}}}}{b{jAb}}}Cf{ChHh}}{{{b{{Hl{c}}}}{b{jAb}}}Cf{ChHh}}{{{b{{Ff{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Hn{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Cl{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{I`{c}}}}{b{jAb}}}Cf{ChBl}}{cc{}}00{{{G`{c}}}{{Fh{c}}}Bl}111111{{{b{Ij}}}{{Af{{G`{c}}e}}}Bl{}}{{{b{Ij}}}{{Af{{Fh{c}}e}}}Bl{}}```{{{b{{G`{c}}}}{b{je}}}fBlAh}{{{b{{Hf{c}}}}{b{je}}}fBlAh}{{{b{{Fh{c}}}}{b{je}}}fBlAh}{{{b{{Hj{c}}}}{b{je}}}f{IlHh}Ah}{{{b{{Hl{c}}}}{b{je}}}f{IlHh}Ah}{{}n}00000000{ce{}{}}00000000{{{Aj{c}}}{{Aj{h}}}{}}00000000{{{Al{c}}}{{Al{h}}}{}}00000000{{{An{c}}}{{An{h}}}{}}00000000{{{b{{Fh{c}}}}}A`Bl}``{{{b{{Fh{c}}}}}nBl}``````````````{{{b{{G`{c}}}}e}AfBlIn}{{{b{{Fh{c}}}}e}AfBlIn}{{{b{{G`{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hf{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Fh{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hj{c}}}}eId}{{Af{fEn}}}HhJ`}{{{b{{Hl{c}}}}eId}{{Af{fEn}}}HhJ`}{{{b{{Ff{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hn{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Cl{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{I`{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{G`{c}}}}Id}nBl}{{{b{{Hf{c}}}}Id}nBl}{{{b{{Fh{c}}}}Id}nBl}{{{b{{Hj{c}}}}Id}nHh}{{{b{{Hl{c}}}}Id}nHh}{{{b{{Ff{c}}}}Id}nBl}{{{b{{Hn{c}}}}Id}nBl}{{{b{{Cl{c}}}}Id}nBl}{{{b{{I`{c}}}}Id}nBl}```{{}Fd}0{{{b{c}}}e{}{}}00000000{{{b{c}}}Fd{}}0{c{{Af{e}}}{}{}}{{{b{Jb}}}{{Af{{G`{c}}e}}}Bl{}}{Jb{{Af{{G`{c}}e}}}Bl{}}{Bh{{Af{{G`{e}}g}}}{{Db{}{{D`{}}{Jd{}}}}}{{Bl{}{{Dd{{Df{c}}}}}}}{}}33{Jb{{Af{{Fh{c}}e}}}Bl{}}{{{b{Jb}}}{{Af{{Fh{c}}e}}}Bl{}}5{{{Bh{c}}}{{Af{{Hj{c}}e}}}Hh{}}66666666666666{{{b{c}}}B`{}}00000000`{ce{}{}}00000000```````{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJj}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}Cb{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}{}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Bf{{Jh{g}}}}}}}{{Af{fEh}}}{}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{Bf}}}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{jJn}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{Hl}}}{{Af{fEh}}}{EbCn}}{{{b{jJl}}{b{Hl}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{Hj}}}{{Af{fEh}}}{EbCn}}{{{b{jJl}}{b{Hj}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJj}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}Cb{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}{}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}{{b{h}}}{}}00{{{b{jc}}}{{b{jh}}}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{n{{b{c}}}{}}00{n{{b{jc}}}{}}00{nf}00{cc{}}00{{{b{jJl}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}}{{Af{Eh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{jJn}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{jJl}}{b{{Bf{{b{{Bf{Gb}}}}}}}}}{{Af{BhEh}}}}{{}n}00{ce{}{}}00{{{Aj{c}}}{{Aj{h}}}{}}00{{{Al{c}}}{{Al{h}}}{}}00{{{An{c}}}{{An{h}}}{}}00{{{b{{Bf{Gb}}}}}Jl}{{{b{{Bf{Gb}}}}}{{Jf{c}}}{EbCn}}{{{b{{Bf{Gb}}}}}Jj}{{{b{{Bf{Gb}}}}}Jn}{c{{Af{e}}}{}{}}00000{{{b{c}}}B`{}}00999","D":"AFh","p":[[1,"reference"],[5,"Private",701],[1,"unit"],[10,"Any",702],[0,"mut"],[6,"PlonkType",0,703],[1,"usize"],[1,"bool"],[5,"Formatter",704],[5,"Error",704],[6,"Result",705],[10,"Hasher",706],[5,"Box",707],[5,"Arc",708],[5,"Rc",709],[5,"TypeId",702],[10,"BatchableCircuit",38],[5,"VerifyingKeyVar",38],[1,"slice"],[5,"Vec",710],[6,"CircuitError",711],[10,"Pairing",712],[5,"BatchProofVar",38,713],[10,"Clone",714],[10,"PrimeField",715],[10,"PartialEq",716],[8,"Result",704],[10,"Debug",704],[5,"PlonkCircuit",703],[5,"VerifyingKey",267],[10,"SWToTEConParam",717],[17,"BaseField"],[10,"SWCurveConfig",718],[17,"G1Affine"],[5,"Affine",719],[5,"TEPoint",720],[5,"FpElemVar",721],[8,"Variable",703],[5,"PointVariable",720],[1,"tuple"],[10,"RescueParameter",722],[10,"TECurveConfig",723],[10,"Error",724],[6,"PlonkError",116],[6,"SnarkError",116],[6,"PCSError",725],[6,"SerializationError",726],[6,"RescueError",722],[5,"Error",727],[5,"String",728],[5,"ProvingKey",267],[5,"BatchProof",267],[10,"CryptoRng",729],[10,"RngCore",729],[10,"Arithmetization",703],[5,"Proof",267],[1,"u8"],[6,"Option",730],[5,"PlonkKzgSnark",183,731],[5,"Instance",220],[8,"UniversalSrs",267],[8,"OpenKey",267],[6,"MergeableCircuitType",703],[17,"Item"],[10,"Iterator",732],[10,"Send",733],[5,"PlookupProof",267],[10,"Field",734],[5,"ProofEvaluations",267],[5,"PlookupEvaluations",267],[5,"PlookupProvingKey",267],[5,"PlookupVerifyingKey",267],[10,"Deserializer",735],[6,"Compress",736],[6,"Validate",736],[10,"Read",737],[1,"str"],[10,"Hash",706],[10,"Serializer",738],[10,"Write",737],[5,"TaggedBase64",739],[17,"ScalarField"],[5,"RescueTranscript",618,740],[5,"Commitment",741],[5,"SolidityTranscript",618,742],[10,"PlonkTranscript",618],[5,"StandardTranscript",618,743],[5,"RescueTranscriptVar",97],[10,"UniversalSNARK",183],[5,"BatchArgument",220],[8,"CommitKey",267]],"r":[[0,116],[1,703],[38,713],[184,731],[619,740],[620,742],[621,743]],"b":[[151,"impl-Display-for-PlonkError"],[152,"impl-Debug-for-PlonkError"],[153,"impl-Display-for-SnarkError"],[154,"impl-Debug-for-SnarkError"],[155,"impl-From%3CPCSError%3E-for-PlonkError"],[156,"impl-From%3CCircuitError%3E-for-PlonkError"],[157,"impl-From%3CSerializationError%3E-for-PlonkError"],[158,"impl-From%3CSnarkError%3E-for-PlonkError"],[160,"impl-From%3CRescueError%3E-for-PlonkError"],[161,"impl-From%3CError%3E-for-PlonkError"],[442,"impl-Debug-for-Proof%3CE%3E"],[443,"impl-Display-for-Proof%3CE%3E"],[445,"impl-Display-for-BatchProof%3CE%3E"],[446,"impl-Debug-for-BatchProof%3CE%3E"],[573,"impl-TryFrom%3C%26TaggedBase64%3E-for-Proof%3CE%3E"],[574,"impl-TryFrom%3CTaggedBase64%3E-for-Proof%3CE%3E"],[575,"impl-TryFrom%3CVec%3C%3CE+as+Pairing%3E::BaseField%3E%3E-for-Proof%3CE%3E"],[578,"impl-TryFrom%3CTaggedBase64%3E-for-BatchProof%3CE%3E"],[579,"impl-TryFrom%3C%26TaggedBase64%3E-for-BatchProof%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAkCPAABAAAABQAEAAsAAQAOAAYAFgAAABgAAQAbAAIAHwAAACEAAwAqAAEALQAbAEsAAQBPAAUAVwABAFoABwBjAAYAawAAAG0ABgCJABYAoQABAKQAAQCoAA8AvwABAMQABADKAAAAzAACANUAAgDaAAAA3AAAAN8AAADhAAMA5gADAOwAAQDvAAUA9wABAPsABAACAQYACgEBABgBIwA+ASwAbQEdAIwBCACXAS4AyQEAANABAQDVAQ0A7AEaABkCEwAwAi0AXwIIAHACAABzAgEAegIBAH0CAAB/AgEAggIUAJwCAQCfAgIApQIIALICCwA="}],\ +["jf_elgamal",{"t":"FFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Ciphertext","EncKey","KeyPair","ParameterError","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","batch_check","batch_check","batch_check","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","decrypt","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deterministic_encrypt","drop","drop","drop","drop","enc_key","enc_key_ref","encrypt","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from_scalars","generate","hash","hash","init","init","init","init","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","rand","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_scalars","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","vzip","vzip","vzip","vzip","zeroize"],"q":[[0,"jf_elgamal"],[130,"dyn_clone::sealed"],[131,"core::any"],[132,"ark_serialize::error"],[133,"core::result"],[134,"ark_ec::models::twisted_edwards"],[135,"core::iter::traits::iterator"],[136,"core::marker"],[137,"alloc::vec"],[138,"jf_rescue"],[139,"ark_serialize"],[140,"std::io"],[141,"rand_core"],[142,"core::fmt"],[143,"core::hash"],[144,"alloc::boxed"],[145,"alloc::sync"],[146,"alloc::rc"],[147,"rand::rng"],[148,"alloc::string"]],"i":[0,0,0,0,10,13,14,26,10,13,14,26,10,13,14,10,13,14,26,10,13,14,26,10,13,14,10,13,14,10,13,14,10,13,14,10,13,14,13,10,26,10,13,14,26,10,13,14,10,13,14,10,26,10,13,14,13,13,10,10,13,14,10,10,10,14,14,14,26,26,10,13,14,26,10,13,14,14,13,10,14,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,10,10,13,14,10,13,14,10,13,14,14,26,26,10,13,14,26,10,13,14,26,10,13,14,26,10,13,14,10],"f":"````{{{b{c}}d}f{}}00{{{b{c}}}{{b{h}}}{}}000{{{b{jc}}}{{b{jh}}}{}}000{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Ad{c}}}}}}}}Ah}}{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Aj{c}}}}}}}}Ah}}{e{{n{fl}}}A`{{Af{}{{Ab{{b{{Al{c}}}}}}}}Ah}}{{{b{c}}}{{b{e}}}{}{}}000{{{b{jc}}}{{b{je}}}{}{}}000{{{b{{Ad{c}}}}}{{n{fl}}}A`}{{{b{{Aj{c}}}}}{{n{fl}}}A`}{{{b{{Al{c}}}}}{{n{fl}}}A`}{{{b{{Ad{c}}}}}{{Ad{c}}}A`}{{{b{{Aj{c}}}}}{{Aj{c}}}A`}{{{b{{Al{c}}}}}{{Al{c}}}A`}{{{b{c}}{b{je}}}f{}{}}00{{{b{c}}}f{}}00{{{b{{Aj{e}}}}{b{{Al{e}}}}}{{An{c}}}B`{{A`{}{{Bb{c}}}}}}{{}{{Ad{c}}}A`}{Bd{{b{c}}}{}}000{Bd{{b{jc}}}{}}000{{cBfBh}{{n{{Ad{e}}l}}}BjA`}{{cBfBh}{{n{{Aj{e}}l}}}BjA`}{{cBfBh}{{n{{Al{e}}l}}}BjA`}{{{b{{Ad{e}}}}{b{{Bl{c}}}}}{{Al{e}}}B`{{A`{}{{Bb{c}}}}}}{Bdf}000{{{b{{Aj{c}}}}}{{Ad{c}}}A`}{{{b{{Aj{c}}}}}{{b{{Ad{c}}}}}A`}{{{b{{Ad{e}}}}{b{jg}}{b{Bl}}}{{Al{e}}}B`{{A`{}{{Bb{c}}}}}{BnC`}}{{{b{{Ad{c}}}}{b{{Ad{c}}}}}CbA`}{{{b{{Aj{c}}}}{b{{Aj{c}}}}}CbA`}{{{b{{Al{c}}}}{b{{Al{c}}}}}CbA`}{{{b{c}}{b{e}}}Cb{}{}}00000{{{b{Cd}}{b{jCf}}}Ch}0{{{b{{Ad{c}}}}{b{jCf}}}ChA`}{{{b{{Aj{c}}}}{b{jCf}}}ChA`}{{{b{{Al{c}}}}{b{jCf}}}ChA`}{cc{}}000{{{b{Bl}}}{{n{{Al{c}}Cd}}}A`}{{{b{jc}}}{{Aj{e}}}{BnC`}A`}{{{b{{Ad{c}}}}{b{je}}}fA`Cj}{{{b{{Al{c}}}}{b{je}}}fA`Cj}{{}Bd}000{ce{}{}}000{{{Cl{c}}}{{Cl{h}}}{}}000{{{Cn{c}}}{{Cn{h}}}{}}000{{{D`{c}}}{{D`{h}}}{}}000{{{b{jc}}}{{Ad{e}}}{DbC`Dd}A`}{{{b{{Ad{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Aj{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Al{c}}}}eBf}{{n{fl}}}A`Df}{{{b{{Ad{c}}}}Bf}BdA`}{{{b{{Aj{c}}}}Bf}BdA`}{{{b{{Al{c}}}}Bf}BdA`}{{{b{c}}}e{}{}}00{{{b{{Al{c}}}}}AnA`}{{{b{c}}}Dh{}}{c{{n{e}}}{}{}}0000000{{{b{c}}}Dj{}}000????{{{b{j{Ad{c}}}}}fA`}","D":"Bj","p":[[1,"reference"],[5,"Private",130],[1,"unit"],[10,"Any",131],[0,"mut"],[6,"SerializationError",132],[6,"Result",133],[10,"TECurveConfig",134],[17,"Item"],[5,"EncKey",0],[10,"Iterator",135],[10,"Send",136],[5,"KeyPair",0],[5,"Ciphertext",0],[5,"Vec",137],[10,"RescueParameter",138],[17,"BaseField"],[1,"usize"],[6,"Compress",139],[6,"Validate",139],[10,"Read",140],[1,"slice"],[10,"CryptoRng",141],[10,"RngCore",141],[1,"bool"],[5,"ParameterError",0],[5,"Formatter",142],[8,"Result",142],[10,"Hasher",143],[5,"Box",144],[5,"Arc",145],[5,"Rc",146],[10,"Rng",147],[10,"Sized",136],[10,"Write",140],[5,"String",148],[5,"TypeId",131]],"r":[],"b":[[68,"impl-Display-for-ParameterError"],[69,"impl-Debug-for-ParameterError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAG0ABwAFACEAKAALADUAAwA8AA0AUAAFAFoAFQBxABEA"}],\ +["jf_merkle_tree",{"t":"TKRRRKKRKKKRGRKEKKRRPPPKKKNCNNNNMNNNNMNNMMMNNNNNCCNNNNNMNMNCMMQQQQNNNNNMCMCCMMMNNMCMMNMNMNNNMMCNMMNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNPPPPPGPPNNNNNNNNNNNNNNNNNNNNNNNNNNFINNNNNNNNNNNNNNNNNNNNNNNNNNNNRRIKFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKRFKRRRKRKKRNNNNNNNNNNNNNNNNNNNNNNMMMMNNNNNNNNNNNMMNNNNNNNNMNMNNEPEEPEEPEPIEEGIFEEEFIIIIFFEEENNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQQNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["ARITY","AppendableMerkleTreeScheme","BatchMembershipProof","BatchNonMembershipProof","Commitment","DigestAlgorithm","Element","Element","ForgetableMerkleTreeScheme","ForgetableUniversalMerkleTreeScheme","Index","Index","LookupResult","MembershipProof","MerkleCommitment","MerkleTreeError","MerkleTreeScheme","NodeValue","NodeValue","NonMembershipProof","NotFound","NotInMemory","Ok","PersistentUniversalMerkleTreeScheme","ToTraversalPath","UniversalMerkleTreeScheme","__clone_box","append_only","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","clone_to_uninit","clone_to_uninit","commitment","deref","deref_mut","digest","digest","digest_leaf","drop","eq","equivalent","equivalent","equivalent","errors","examples","expect_not_found","expect_not_in_memory","expect_ok","extend","fmt","forget","from","from_commitment","hash","hasher","height","height","impl_forgetable_merkle_tree_scheme","impl_merkle_tree_scheme","impl_to_traversal_path_biguint","impl_to_traversal_path_primitives","init","into","into_any","into_any_arc","into_any_rc","iter","light_weight","lookup","macros","namespaced_merkle_tree","non_membership_remember","non_membership_verify","num_leaves","persistent_remove","persistent_update","persistent_update_with","prelude","push","remember","remove","size","to_owned","to_traversal_path","try_from","try_into","type_id","universal_forget","universal_lookup","universal_merkle_tree","update","update_with","verify","vzip","MerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","clone_to_uninit","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","forget","from","from_commitment","from_elems","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","num_leaves","push","remember","serialize","to_owned","try_from","try_into","type_id","verify","vzip","DigestError","ExceedCapacity","ExistingLeaf","ForgottenLeaf","InconsistentStructureError","MerkleTreeError","NotFound","ParametersError","as_any","as_any_mut","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","into","into_any","into_any_arc","into_any_rc","to_string","try_from","try_into","type_id","vzip","Interval","IntervalMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","clone_to_uninit","clone_to_uninit","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","from","hash","init","into","into_any","into_any_arc","into_any_rc","to_owned","try_from","try_into","type_id","vzip","Bar","Foo","GenericHasherMerkleTree","HasherDigest","HasherDigestAlgorithm","HasherMerkleTree","HasherNode","__clone_box","as_any","as_any","as_any_mut","as_any_mut","as_ref","borrow","borrow","borrow_mut","borrow_mut","check","clone","clone_into","clone_to_uninit","clone_to_uninit","cmp","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize_with_mode","digest","digest_leaf","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from_str","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","partial_cmp","serialize","serialize_with_mode","serialized_size","tag","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","LightWeightMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","clone_to_uninit","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","forget","from","from_commitment","from_elems","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","num_leaves","push","remember","serialize","to_owned","try_from","try_into","type_id","verify","vzip","BindNamespace","Leaf","NMT","Namespace","Namespace","Namespace","NamespaceId","NamespaceProof","NamespaceProof","Namespaced","NamespacedMerkleTreeScheme","Node","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","clone_to_uninit","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","extend","fmt","from","from_elems","generate_namespaced_commitment","get_namespace","get_namespace_leaves","get_namespace_proof","get_namespace_proof","hash","height","init","into","into_any","into_any_arc","into_any_rc","iter","leaves","lookup","max","min","new","num_leaves","push","serialize","to_owned","try_from","try_into","type_id","verify","verify","verify_namespace_proof","verify_namespace_proof","vzip","AppendableMerkleTreeScheme","Branch","DigestAlgorithm","Element","Empty","ForgetableMerkleTreeScheme","ForgetableUniversalMerkleTreeScheme","ForgettenSubtree","Index","Leaf","LightWeightSHA3MerkleTree","LookupResult","MerkleCommitment","MerkleNode","MerklePath","MerkleProof","MerkleTree","MerkleTreeScheme","NodeValue","RescueHash","RescueLightWeightMerkleTree","RescueMerkleTree","RescueSparseMerkleTree","SHA3MerkleTree","Sha3Digest","Sha3Node","ToTraversalPath","UniversalMerkleTree","UniversalMerkleTreeScheme","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_ref","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","digest","digest","digest","digest_leaf","digest_leaf","digest_leaf","drop","drop","drop","drop","drop","elem","eq","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","generate_namespaced_commitment","hash","hash","hash","hash","impl_to_traversal_path_biguint","impl_to_traversal_path_primitives","index","init","init","init","init","init","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","new","partial_cmp","pos","proof","serialize","serialize","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","to_owned","to_owned","tree_height","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","children","elem","pos","value","value","value","UniversalMerkleTree","__clone_box","as_any","as_any_mut","borrow","borrow_mut","capacity","clone","clone_into","clone_to_uninit","commitment","deref","deref_mut","deserialize","drop","eq","equivalent","equivalent","equivalent","fmt","forget","from","from_commitment","from_kv_set","hash","height","init","into","into_any","into_any_arc","into_any_rc","into_iter","into_iter","iter","lookup","new","non_membership_remember","non_membership_verify","num_leaves","persistent_update_with","remember","serialize","to_owned","try_from","try_into","type_id","universal_forget","universal_lookup","update_with","verify","vzip"],"q":[[0,"jf_merkle_tree"],[99,"jf_merkle_tree::append_only"],[146,"jf_merkle_tree::errors"],[180,"jf_merkle_tree::examples"],[210,"jf_merkle_tree::hasher"],[282,"jf_merkle_tree::light_weight"],[329,"jf_merkle_tree::namespaced_merkle_tree"],[393,"jf_merkle_tree::prelude"],[590,"jf_merkle_tree::prelude::MerkleNode"],[596,"jf_merkle_tree::universal_merkle_tree"],[647,"dyn_clone::sealed"],[648,"core::any"],[649,"num_bigint::biguint"],[650,"core::clone"],[651,"core::cmp"],[652,"core::hash"],[653,"core::result"],[654,"core::borrow"],[655,"core::iter::traits::collect"],[656,"core::fmt"],[657,"alloc::boxed"],[658,"alloc::sync"],[659,"alloc::rc"],[660,"core::option"],[661,"core::ops::function"],[662,"alloc::vec"],[663,"serde::de"],[664,"ark_serialize"],[665,"serde::ser"],[666,"core::error"],[667,"jf_rescue"],[668,"alloc::string"],[669,"ark_ff::fields"],[670,"crypto_common"],[671,"digest::digest"],[672,"ark_serialize::error"],[673,"std::io"],[674,"tagged_base64"],[675,"core::iter::traits::exact_size"],[676,"jf_merkle_tree::internal"],[677,"core::convert"]],"i":[12,0,12,44,12,0,0,12,0,0,0,12,0,12,0,0,0,0,12,44,21,21,21,0,0,0,21,0,21,21,21,21,12,21,21,21,21,12,21,21,54,20,54,21,21,21,21,21,0,0,21,21,21,29,21,36,21,36,21,0,20,12,0,0,0,0,21,21,21,21,21,12,0,12,0,0,41,44,12,46,46,46,0,29,36,44,20,21,50,21,21,21,41,44,0,44,44,12,21,0,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,53,24,24,24,24,24,0,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,0,0,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,72,72,0,0,0,0,0,64,99,64,99,64,64,99,64,99,64,64,64,64,64,64,64,64,99,64,99,64,64,64,99,99,99,64,64,64,64,64,64,64,99,64,64,64,64,99,64,99,64,99,64,99,64,99,64,64,64,64,64,64,64,64,99,64,64,64,99,64,99,64,99,64,0,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,0,84,0,0,84,80,87,0,87,0,0,84,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,81,80,84,87,77,77,77,77,77,77,77,77,77,77,77,78,78,77,77,77,77,77,77,77,77,84,77,87,77,77,0,91,0,0,91,0,0,91,0,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,89,91,92,93,89,95,91,92,93,89,95,89,91,92,93,89,95,91,92,93,89,95,91,92,93,93,89,89,95,89,89,91,92,93,89,95,91,92,93,89,95,91,92,89,93,93,95,93,93,95,91,92,93,89,95,92,91,92,93,89,95,91,91,91,92,92,92,93,93,93,89,89,89,95,95,95,91,92,93,89,95,91,92,93,89,95,95,91,92,89,95,0,0,92,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,92,89,92,92,91,92,89,89,91,92,93,89,95,92,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,91,92,93,89,95,100,101,101,100,101,102,0,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98],"f":"``````````````````````````{{{b{c}}d}f{}}`{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}AjAlAnB`{BbBdBf}Bb{{Bh{g}}}}{{{b{{Bj{ceg}}}}}{{Bj{ceg}}}BbBbBb}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}0{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}mAlAnB`{BbBdBf}Bb{{Bh{g}}}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{{{b{{Bn{c}}}}}{{Cb{cC`}}}B`}{{{b{Bh}}}cB`}{{{b{c}}{b{e}}}{{Cb{gC`}}}AnAlB`}{Blf}{{{b{{Bj{ceg}}}}{b{{Bj{ceg}}}}}CdCfCfCf}{{{b{c}}{b{e}}}Cd{}{}}00``{{{Bj{ceg}}}{{Cb{gC`}}}{}{}{}}{{{Bj{ceg}}}{{Cb{fC`}}}{}{}{}}{{{Bj{ceg}}}{{Cb{{Ch{ce}}C`}}}{}{}{}}{{{b{jCj}}g}{{Cb{fC`}}}{}{{Cl{c}}}{{D`{}{{Cn{e}}}}}}{{{b{{Bj{ceg}}}}{b{jDb}}}DdDfDfDf}{{{b{jDh}}e}{{Bj{gif}}}{}{{Cl{c}}}{}{}}{cc{}}{eDh{}{{Cl{c}}}}{{{b{{Bj{ceg}}}}{b{ji}}}fBfBfBfDj}`{{{b{Bh}}}Bl}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}BlAlAnB`{BbBdBf}Bb{{Bh{g}}}}````{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}{{`{ceg}}}AlAnB`{BbBdBf}Bb{{Bh{g}}}}`{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}o}{{Bj{{b{c}}if}}}AlAnB`{BbBdBf}Bb{{Bh{g}}}{{Cl{e}}}}``{{{b{jEb}}cg}{{Cb{fC`}}}{}{}{{Cl{e}}}}{{{b{{Eh{}{{Ed{c}}{Ef{e}}}}}}ik}{{Cb{CdC`}}}{}{}{}{{Cl{g}}}{{Cl{c}}}}{{{b{{Ah{}{{l{c}}{n{e}}{A`{g}}{Ab{i}}{Ad{k}}{Af{m}}}}}}}EjAlAnB`{BbBdBf}Bb{{Bh{g}}}}{{{b{El}}c}{{Cb{ElC`}}}{}}{{{b{El}}ei}{{Cb{ElC`}}}{}{{Cl{c}}}{}{{Cl{g}}}}{{{b{El}}ei}{{Cb{ElC`}}}{}{{Cl{c}}}{}{{Fb{{En{{b{g}}}}}{{F`{{En{g}}}}}}}}`{{{b{jCj}}e}{{Cb{fC`}}}{}{{Cl{c}}}}{{{b{jDh}}eim}{{Cb{fC`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}i}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}}{{{b{Bh}}}Ej}{{{b{c}}}e{}{}}{{{b{Fd}}Bl}{{Ff{Bl}}}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{jEb}}c}{{Bj{egi}}}{}{}{}{}}{{{b{{Eh{}{{Ed{c}}{Ef{e}}}}}}i}{{Bj{{b{k}}mc}}}{}{}{}{{Cl{g}}}{}{}}`{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}im}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{j{Eh{}{{Ed{c}}{Ef{e}}}}}}im}{{Cb{{Bj{kff}}C`}}}{}{}{}{{Cl{g}}}{}{{Fb{{En{{b{k}}}}}{{F`{{En{k}}}}}}}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Fj{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}}{{Fj{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{{{b{{Fj{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Fj{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Fj{cieg}}}}{b{{Fj{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Fj{cgEje}}}}m}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}{{D`{}{{Cn{k}}}}}}{{{b{{Fj{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Fj{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Fj{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{{En{Bl}}g}{{Cb{{Fj{ckEji}}C`}}}Al{{Cl{c}}}{{D`{}{{Cn{e}}}}}B`{{Fl{cEji}}}}{{{b{{Fj{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Fj{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Fj{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{Fj{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Fj{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Fj{cieg}}}AlAnB`{{Fl{ceg}}}}{{{b{{Fj{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{j{Fj{cgEje}}}}k}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}}{{{b{j{Fj{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Fj{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}````````{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{Gf}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{Blf}{{{b{C`}}{b{C`}}}Cd}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{C`}}{b{jDb}}}Dd}0{cc{}}{GhC`}{{}Bl}>{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{c}}}Gj{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{ce{}{}}``{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Gl{c}}}}}{{Gl{c}}}{BbGn}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}0{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{Blf}{{{b{{Gl{c}}}}{b{{Gl{c}}}}}Cd{CfGn}}{{{b{c}}{b{e}}}Cd{}{}}00{cc{}}{{{b{{Gl{c}}}}{b{je}}}f{BfGn}Dj}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}6```````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{{H`{c}}}}}{{b{{Hb{c}}}}}Hd}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{H`{c}}}}}{{Cb{fHf}}}Hd}{{{b{{H`{c}}}}}{{H`{c}}}Hd}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}0{{{b{{H`{c}}}}{b{{H`{c}}}}}HhHd}{{}{{H`{c}}}Hd}{Bl{{b{c}}}{}}0{Bl{{b{jc}}}{}}0{c{{Cb{{H`{e}}}}}FnHd}{{cHjHl}{{Cb{{H`{e}}Hf}}}HnHd}{{{b{{Bn{{H`{c}}}}}}}{{Cb{{H`{c}}C`}}}I`}{{{b{c}}{b{e}}}{{Cb{{H`{g}}C`}}}{AnG`}{AlG`}I`}{Blf}0{{{b{{H`{c}}}}{b{{H`{c}}}}}CdHd}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{{H`{c}}}}{b{jDb}}}DdHd}0{cc{}}0{{{Hb{c}}}{{H`{c}}}Hd}{{{b{Ib}}}{{Cb{{H`{c}}e}}}Hd{}}{{{b{{H`{c}}}}{b{je}}}fHdDj}{{}Bl}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{{H`{c}}}}{b{{H`{c}}}}}{{En{Hh}}}Hd}{{{b{{H`{c}}}}e}CbHdGd}{{{b{{H`{c}}}}eHj}{{Cb{fHf}}}HdId}{{{b{{H`{c}}}}Hj}BlHd}{{}Gj}{{{b{c}}}e{}{}}{{{b{c}}}Gj{}}{c{{Cb{e}}}{}{}}{{{b{If}}}{{Cb{{H`{c}}e}}}Hd{}}{If{{Cb{{H`{c}}e}}}Hd{}}222{{{b{c}}}Fh{}}0>>`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ih{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}}{{Ih{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{{{b{{Ih{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ih{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Ih{cieg}}}}{b{{Ih{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Ih{cgEje}}}}m}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}{{D`{}{{Cn{k}}}}}}{{{b{{Ih{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Ih{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Ih{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{{En{Bl}}g}{{Cb{{Ih{ckEji}}C`}}}Al{{Cl{c}}}{{D`{}{{Cn{e}}}}}B`{{Fl{cEji}}}}{{{b{{Ih{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Ih{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ih{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{Ih{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Ih{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Ih{cieg}}}AlAnB`{{Fl{ceg}}}}{{{b{{Ih{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{j{Ih{cgEje}}}}k}{{Cb{fC`}}}AlB`{{Fl{cEje}}}{}{{Cl{i}}}}{{{b{j{Ih{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Ih{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}````````````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ij{eicg}}}}}AjIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}}{{Ij{eicg}}}{IlBb}{Al{J`{}{{In{c}}}}Bb}{B`Bb}{{Fl{eEjg}}{Jb{eEjgc}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{{{b{{Ij{eicg}}}}}kIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ij{gkei}}}}}FnIl{Al{J`{}{{In{e}}}}G`Gb}{B`G`Gb}{{Fl{gEji}}{Jb{gEjie}}}}{Blf}{{{b{{Ij{eicg}}}}{b{{Ij{eicg}}}}}Cd{IlCf}{Al{J`{}{{In{c}}}}Cf}{B`Cf}{{Fl{eEjg}}{Jb{eEjgc}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{j{Ij{eicg}}}}o}{{Cb{fC`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}{{D`{}{{Cn{m}}}}}}{{{b{{Ij{eicg}}}}{b{jDb}}}Dd{IlDf}{Al{J`{}{{In{c}}}}Df}{B`Df}{{Fl{eEjg}}{Jb{eEjgc}}Df}}{cc{}}{{{En{Bl}}i}{{Cb{{Ij{emck}}C`}}}Il{Al{J`{}{{In{c}}}}}{{Cl{e}}}{{D`{}{{Cn{g}}}}}B`{{Fl{eEjk}}{Jb{eEjkc}}}}{{{`{ce}}}cB`Il}{{{b{{J`{}{{In{c}}}}}}}cIl}{{{b{{Jh{}{{In{c}}{Jd{e}}{Jf{g}}}}}}}{{Ff{{b{e}}}}}Il{Al{J`{}{{In{c}}}}}B`}{{{b{{Jn{}{{Jj{c}}{Jl{e}}}}}}e}cJhIl}{{{b{{Ij{eicg}}}}k}mIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}Bb}{}{}}{{{b{{Ij{eicg}}}}{b{jk}}}f{IlBf}{Al{J`{}{{In{c}}}}Bf}{B`Bf}{{Fl{eEjg}}{Jb{eEjgc}}Bf}Dj}{{{b{{Ij{eicg}}}}}BlIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ij{eicg}}}}}{{`{kmo}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{}{}}{{{b{{Ij{eicg}}}}}{{`{{K`{}{{Cn{{b{e}}}}}}}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}m}{{Bj{{b{o}}Aaf}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}{}{}}{{}Il}0{Bl{{Ij{eicg}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{{Ij{eicg}}}}}EjIl{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}}{{{b{j{Ij{eicg}}}}m}{{Cb{fC`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}}{}{{Cl{k}}}}{{{b{{Ij{eicg}}}}k}CbIl{Al{J`{}{{In{c}}}}G`Gb}{B`G`Gb}{{Fl{eEjg}}{Jb{eEjgc}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{{Jh{}{{In{c}}{Jd{e}}{Jf{g}}}}}}{b{{`{gc}}}}c}{{Cb{{Cb{ff}}C`}}}Il{Al{J`{}{{In{c}}}}}B`}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{{{b{{Jn{}{{Jj{c}}{Jl{e}}}}}}{b{c}}e}{{Cb{{Cb{ff}}C`}}}JhIl}{{{b{{Ij{eicg}}}}{b{k}}m}{{Cb{{Cb{ff}}C`}}}Il{Al{J`{}{{In{c}}}}}B`{{Fl{eEjg}}{Jb{eEjgc}}Bb}{}{}}{ce{}{}}`````````````````````````````{{{b{c}}d}f{}}0000{{{b{c}}}{{b{h}}}{}}0000{{{b{jc}}}{{b{jh}}}{}}0000{{{b{Kb}}}{{b{{Bn{Kd}}}}}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{jc}}}{{b{je}}}{}{}}0000{{{b{Kb}}}{{Cb{fHf}}}}{{{b{{Kf{ceg}}}}}{{Kf{ceg}}}{BbAl}{BbAn}{BbB`}}{{{b{{Kh{ceg}}}}}{{Kh{ceg}}}{AlBb}{AnBb}{B`Bb}}{{{b{{Kj{c}}}}}{{Kj{c}}}{BbKl}}{{{b{Kb}}}Kb}{{{b{Kn}}}Kn}{{{b{c}}{b{je}}}f{}{}}0000{{{b{c}}}f{}}000000{{{b{Kb}}{b{Kb}}}Hh}{{}Kb}{Bl{{b{c}}}{}}0000{Bl{{b{jc}}}{}}0000{c{{Cb{{Kf{egi}}}}}Fn{G`GbAl}{G`GbAn}B`}{c{{Cb{{Kh{egi}}}}}Fn{AlG`Gb}{AnG`Gb}B`}{{cHjHl}{{Cb{KbHf}}}Hn}{{{b{{Bn{e}}}}}{{Cb{eC`}}}An{Kl{L`{c}}}}{{{b{{Bn{c}}}}}{{Cb{cC`}}}Kl}{{{b{{Bn{Kb}}}}}{{Cb{KbC`}}}}{{{b{Ej}}{b{{Gl{c}}}}}{{Cb{cC`}}}Kl}{{{b{c}}{b{e}}}{{Cb{eC`}}}An{Kl{L`{c}}}}{{{b{c}}{b{e}}}{{Cb{KbC`}}}An{AlG`}}{Blf}0000{{{b{{Kh{ceg}}}}}{{En{{b{c}}}}}AlAnB`}{{{b{{Kf{ceg}}}}{b{{Kf{ceg}}}}}Cd{CfAl}{CfAn}{CfB`}}{{{b{{Kh{ceg}}}}{b{{Kh{ceg}}}}}Cd{AlCf}{AnCf}{B`Cf}}{{{b{{Kj{c}}}}{b{{Kj{c}}}}}Cd{CfKl}}{{{b{Kb}}{b{Kb}}}Cd}{{{b{Kn}}{b{Kn}}}Cd}{{{b{c}}{b{e}}}Cd{}{}}00000000000000{{{b{{Kf{ceg}}}}{b{jDb}}}Dd{DfAl}{DfAn}{DfB`}}{{{b{{Kh{ceg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}}{{{b{{Kj{c}}}}{b{jDb}}}Dd{DfKl}}{{{b{Kb}}{b{jDb}}}Dd}{{{b{Kn}}{b{jDb}}}Dd}{cc{}}0000{{{`{Kbc}}}KbIl}{{{b{{Kf{ceg}}}}{b{ji}}}f{BfAl}{BfAn}{BfB`}Dj}{{{b{{Kh{ceg}}}}{b{ji}}}f{AlBf}{AnBf}{B`Bf}Dj}{{{b{Kb}}{b{jc}}}fDj}{{{b{Kn}}{b{jc}}}fDj}``{{{b{{Kh{ceg}}}}}{{b{e}}}AlAnB`}{{}Bl}0000{ce{}{}}0000{{{Dl{c}}}{{Dl{h}}}{}}0000{{{Dn{c}}}{{Dn{h}}}{}}0000{{{E`{c}}}{{E`{h}}}{}}0000{{c{Lb{ecg}}}{{Kh{ecg}}}AnAlB`}{{{b{Kb}}{b{Kb}}}{{En{Hh}}}}``{{{b{{Kf{ceg}}}}i}Cb{G`GbAl}{G`GbAn}B`Gd}{{{b{{Kh{ceg}}}}i}Cb{AlG`Gb}{AnG`Gb}B`Gd}{{{b{Kb}}cHj}{{Cb{fHf}}}Id}{{{b{Kb}}Hj}Bl}{{{b{c}}}e{}{}}0000{{{b{{Kh{ceg}}}}}BlAlAnB`}{c{{Cb{e}}}{}{}}000000000{{{b{c}}}Fh{}}0000=====```````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Ld{cieg}}}}}AjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}}{{Ld{cieg}}}{AlBb}{AnBb}{B`Bb}{{Fl{ceg}}Bb}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{{{b{{Ld{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{Bl{{b{c}}}{}}{Bl{{b{jc}}}{}}{c{{Cb{{Ld{ekgi}}}}}Fn{AlG`Gb}{AnG`Gb}B`{{Fl{egi}}}}{Blf}{{{b{{Ld{cieg}}}}{b{{Ld{cieg}}}}}Cd{AlCf}{AnCf}{B`Cf}{{Fl{ceg}}Cf}}{{{b{c}}{b{e}}}Cd{}{}}00{{{b{{Ld{cieg}}}}{b{jDb}}}Dd{AlDf}{AnDf}{B`Df}{{Fl{ceg}}Df}}{{{b{j{Ld{cieg}}}}m}{{Bj{oAaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{cc{}}{e{{Ld{gmik}}}{}{{Cl{c}}}Al{AnFd}B`{{Fl{gik}}}}{{Blm}{{Cb{{Ld{gAaco}}C`}}}{AnFd}{{Cl{c}}}Al{{Cl{g}}}{{Cl{{Ch{ei}}}}}{{D`{}{{Cn{k}}}}}B`{{Fl{gco}}}}{{{b{{Ld{cieg}}}}{b{jk}}}f{AlBf}{AnBf}{B`Bf}{{Fl{ceg}}Bf}Dj}{{{b{{Ld{cieg}}}}}BlAl{AnFd}B`{{Fl{ceg}}}}{{}Bl}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Ld{cieg}}}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{Ld{cieg}}}kAl{AnFd}B`{{Fl{ceg}}}{}}{{{b{{Ld{cieg}}}}}{{`{ceg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}m}{{Bj{{b{o}}Aaf}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}}{Bl{{Ld{cieg}}}Al{AnFd}B`{{Fl{ceg}}}}{{{b{j{Ld{cieg}}}}ko}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{}{{Cl{m}}}}{{{b{{Ld{cieg}}}}mAa}{{Cb{CdC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}}{{{b{{Ld{cieg}}}}}EjAl{AnFd}B`{{Fl{ceg}}}}{{{b{{Ld{cieg}}}}mAa}{{Cb{{Ld{cieg}}C`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Fb{{En{{b{o}}}}}{{F`{{En{o}}}}}}}}{{{b{j{Ld{cieg}}}}mAaAe}{{Cb{fC`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Cl{o}}}{}{{Cl{Ac}}}}{{{b{{Ld{cieg}}}}k}Cb{AlG`Gb}{AnG`Gb}B`{{Fl{ceg}}}Gd}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Fh{}}{{{b{j{Ld{cieg}}}}k}{{Bj{moAa}}}Al{AnFd}B`{{Fl{ceg}}}{}{}{}{}}{{{b{{Ld{cieg}}}}m}{{Bj{{b{o}}AaAc}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{}{}}{{{b{j{Ld{cieg}}}}mAa}{{Cb{{Bj{cff}}C`}}}Al{AnFd}B`{{Fl{ceg}}}{}{{Cl{k}}}{}{{Fb{{En{{b{o}}}}}{{F`{{En{o}}}}}}}}{{eim}{{Cb{{Cb{ff}}C`}}}{}{{Cl{c}}}{}{{Cl{g}}}{}{{Cl{k}}}}{ce{}{}}","D":"AFb","p":[[1,"reference"],[5,"Private",647],[1,"unit"],[10,"Any",648],[0,"mut"],[17,"Element"],[17,"Index"],[17,"NodeValue"],[17,"MembershipProof"],[17,"BatchMembershipProof"],[17,"Commitment"],[10,"MerkleTreeScheme",0],[5,"BigUint",649],[10,"Element",0],[10,"Index",0],[10,"NodeValue",0],[10,"Clone",650],[10,"Eq",651],[10,"Hash",652],[10,"MerkleCommitment",0],[6,"LookupResult",0],[1,"usize"],[1,"slice"],[6,"MerkleTreeError",146],[6,"Result",653],[1,"bool"],[10,"PartialEq",651],[1,"tuple"],[10,"AppendableMerkleTreeScheme",0],[10,"Borrow",654],[17,"Item"],[10,"IntoIterator",655],[5,"Formatter",656],[8,"Result",656],[10,"Debug",656],[10,"ForgetableMerkleTreeScheme",0],[10,"Hasher",652],[5,"Box",657],[5,"Arc",658],[5,"Rc",659],[10,"ForgetableUniversalMerkleTreeScheme",0],[17,"NonMembershipProof"],[17,"BatchNonMembershipProof"],[10,"UniversalMerkleTreeScheme",0],[1,"u64"],[10,"PersistentUniversalMerkleTreeScheme",0],[6,"Option",660],[17,"Output"],[10,"FnOnce",661],[10,"ToTraversalPath",0],[5,"Vec",662],[5,"TypeId",648],[5,"MerkleTree",99],[10,"DigestAlgorithm",0],[10,"Deserializer",663],[10,"CanonicalSerialize",664],[10,"CanonicalDeserialize",664],[10,"Serializer",665],[10,"Error",666],[6,"RescueError",667],[5,"String",668],[5,"Interval",180],[10,"Field",669],[5,"HasherNode",210],[8,"Output",670],[10,"Digest",671],[6,"SerializationError",672],[6,"Ordering",651],[6,"Compress",664],[6,"Validate",664],[10,"Read",673],[10,"HasherDigest",210],[1,"str"],[10,"Write",673],[5,"TaggedBase64",674],[5,"LightWeightMerkleTree",282],[5,"NMT",329],[10,"Namespace",329],[17,"Namespace"],[10,"Namespaced",329],[10,"BindNamespace",329],[17,"Leaf"],[17,"Node"],[10,"NamespaceProof",329],[17,"NamespaceProof"],[17,"NamespaceId"],[10,"NamespacedMerkleTreeScheme",329],[10,"ExactSizeIterator",675],[5,"Sha3Node",393],[1,"u8"],[6,"MerkleNode",393,676],[5,"MerkleProof",393,676],[5,"RescueHash",393],[10,"RescueParameter",667],[5,"Sha3Digest",393],[10,"From",677],[8,"MerklePath",393,676],[5,"UniversalMerkleTree",596],[5,"HasherDigestAlgorithm",210],[15,"Branch",590],[15,"Leaf",590],[15,"ForgettenSubtree",590]],"r":[[15,146],[393,0],[395,0],[396,0],[398,0],[399,0],[401,0],[404,0],[405,0],[406,676],[407,676],[408,676],[409,99],[410,0],[411,0],[419,0],[420,596],[421,0],[528,0],[529,0]],"b":[[131,"impl-IntoIterator-for-%26MerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[132,"impl-IntoIterator-for-MerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[166,"impl-Display-for-MerkleTreeError"],[167,"impl-Debug-for-MerkleTreeError"],[248,"impl-Debug-for-HasherNode%3CH%3E"],[249,"impl-Display-for-HasherNode%3CH%3E"],[273,"impl-TryFrom%3C%26TaggedBase64%3E-for-HasherNode%3CH%3E"],[274,"impl-TryFrom%3CTaggedBase64%3E-for-HasherNode%3CH%3E"],[314,"impl-IntoIterator-for-%26LightWeightMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[315,"impl-IntoIterator-for-LightWeightMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[481,"impl-DigestAlgorithm%3CF,+I,+F%3E-for-RescueHash%3CF%3E"],[482,"impl-DigestAlgorithm%3CInterval%3CF%3E,+u64,+F%3E-for-RescueHash%3CF%3E"],[484,"impl-DigestAlgorithm%3CInterval%3CF%3E,+u64,+F%3E-for-RescueHash%3CF%3E"],[485,"impl-DigestAlgorithm%3CF,+I,+F%3E-for-RescueHash%3CF%3E"],[627,"impl-IntoIterator-for-%26UniversalMerkleTree%3CE,+H,+I,+ARITY,+T%3E"],[628,"impl-IntoIterator-for-UniversalMerkleTree%3CE,+H,+I,+ARITY,+T%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAANYBOgAQAAAAGwAAAB0AAwAiAAMAJwABACwABAA3AAAAOwAAAEMAAABFAAIAWAAAAFoAAgBjAAAAZQAUAHsAAAB9AAIAgQAGAIkACQCbAA0AqgABAK0ABwC3AA8AyAABAMsABwDaACAA/QAEAAQBFgAcARQAMgEAADQBAgA4AQYAQAEJAFYBEwBwAQMAdQEDAHoBAAB+AQYAhgEAAIgBAgCMAQEAjwEBAJIBAACVAQEAmgECAKQBSADuARgADAIEABQCBAAeAg4ALgIAADECCAA7AhMAVgITAGsCAABtAgIAcQIGAHkCCQCEAgMA"}],\ +["jf_pcs",{"t":"RRRRERRKRRRKKRMMMHMCMMNNNNNMMMMCMCCMMNMCMPPPPGPPPNNNNNNNNNNNNNNNNNNIFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOONNNNNNNNNNNNNNNNNNNNFEEEEFFFEEEEEEFFFNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOHOOOOOONNNNNNNNNNNNNNNNHOOOOOOOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFPPGNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNIFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNN","n":["BatchCommitment","BatchProof","Commitment","Evaluation","PCSError","Point","Polynomial","PolynomialCommitmentScheme","Proof","ProverParam","SRS","StructuredReferenceString","UnivariatePCS","VerifierParam","batch_commit","batch_open","batch_verify","checked_fft_size","commit","errors","extract_prover_param","extract_verifier_param","load_srs_from_file","load_srs_from_file","multi_open","multi_open_rou","multi_open_rou_eval_domain","multi_open_rou_evals","multi_open_rou_proofs","multi_point_open","multi_point_verify","multilinear_kzg","open","prelude","transcript","trim","trim","trim_fft_size","trim_with_verifier_degree","univariate_kzg","verify","InvalidParameters","InvalidProof","InvalidProver","InvalidVerifier","PCSError","SerializationError","TranscriptError","UpstreamError","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","from","from","init","into","to_string","try_from","try_into","type_id","vzip","MLE","MultilinearKzgBatchProof","MultilinearKzgPCS","MultilinearKzgProof","batch_check","batch_check","batch_commit","batch_open","batch_verify","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","commit","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","hash","init","init","init","into","into","into","open","proof","proofs","q_x_commit","q_x_opens","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","to_owned","to_owned","trim","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","Commitment","MLE","MultilinearKzgBatchProof","MultilinearKzgPCS","MultilinearKzgProof","MultilinearProverParam","MultilinearUniversalParams","MultilinearVerifierParam","PCSError","PolynomialCommitmentScheme","StructuredReferenceString","UnivariateKzgBatchProof","UnivariateKzgPCS","UnivariateKzgProof","UnivariateProverParam","UnivariateUniversalParams","UnivariateVerifierParam","as_ref","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","beta_h","beta_h","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check","check","check","check","check","check","check","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","extract_prover_param","extract_prover_param","extract_verifier_param","extract_verifier_param","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","g","g","g","get_batched_nv","h","h","h","h","h_mask","h_mask","hash","init","init","init","init","init","init","init","into","into","into","into","into","into","into","max_degree","merge_polynomials","num_vars","num_vars","powers_of_g","powers_of_g","powers_of_g","powers_of_g","powers_of_h","powers_of_h","prover_param","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","trim","trim","trim_with_verifier_degree","trim_with_verifier_degree","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","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","IOPTranscript","InvalidTranscript","SerializationError","TranscriptError","append_message","append_serializable_element","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","from","from","from","get_and_append_byte_challenge","get_and_append_challenge","init","init","into","into","new","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","UnivariateKzgBatchProof","UnivariateKzgPCS","UnivariateKzgProof","batch_check","batch_commit","batch_open","batch_verify","borrow","borrow","borrow_mut","borrow_mut","check","clone","clone_into","clone_to_uninit","commit","deref","deref","deref_mut","deref_mut","deserialize_with_mode","drop","drop","eq","equivalent","equivalent","fmt","from","from","hash","init","init","into","into","multi_open","multi_open_rou_evals","multi_open_rou_proofs","multi_point_open","multi_point_verify","open","proof","serialize_with_mode","serialized_size","to_owned","trim","try_from","try_from","try_into","try_into","type_id","type_id","verify","vzip","vzip"],"q":[[0,"jf_pcs"],[41,"jf_pcs::errors"],[67,"jf_pcs::multilinear_kzg"],[145,"jf_pcs::prelude"],[367,"jf_pcs::transcript"],[408,"jf_pcs::univariate_kzg"],[462,"core::result"],[463,"core::borrow"],[464,"alloc::vec"],[465,"rand_core"],[466,"core::option"],[467,"ark_poly::domain::radix2"],[468,"core::error"],[469,"core::fmt"],[470,"ark_serialize::error"],[471,"jf_pcs::transcript::errors"],[472,"alloc::string"],[473,"core::any"],[474,"ark_ec::pairing"],[475,"core::iter::traits::iterator"],[476,"core::marker"],[477,"core::clone"],[478,"ark_serialize"],[479,"std::io"],[480,"core::cmp"],[481,"core::hash"],[482,"jf_pcs::structs"],[483,"ark_ec"],[484,"jf_pcs::multilinear_kzg::srs"],[485,"jf_pcs::univariate_kzg::srs"],[486,"core::default"],[487,"ark_poly::evaluations::multivariate::multilinear::dense"],[488,"ark_ff::fields::prime"],[489,"jf_pcs::multilinear_kzg::util"]],"i":[58,58,58,58,0,58,58,0,58,15,58,0,0,15,58,58,58,0,58,0,15,15,58,15,58,59,59,59,59,59,59,0,58,0,0,58,15,59,15,0,58,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,29,32,60,60,60,60,29,32,60,29,32,29,32,29,32,29,32,29,32,60,60,29,32,60,29,32,29,32,60,29,32,29,32,29,29,32,32,29,32,60,29,32,29,60,29,32,60,29,32,60,32,29,32,32,29,32,29,32,29,32,60,60,29,32,60,29,32,60,29,32,60,60,29,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,44,45,46,41,47,48,49,47,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,41,47,48,49,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,41,47,48,49,41,41,47,47,48,48,49,49,44,47,44,47,44,45,46,41,47,48,49,44,45,46,41,41,47,48,49,45,46,49,0,45,46,47,49,44,46,41,44,45,46,41,47,48,49,44,45,46,41,47,48,49,47,0,45,46,45,47,48,49,47,49,44,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,47,44,47,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,44,45,46,41,47,48,49,0,24,24,0,54,54,24,54,24,54,54,54,54,24,54,24,54,24,54,24,24,24,24,54,54,54,24,54,24,54,54,54,24,24,54,24,54,24,54,24,54,0,0,0,57,61,61,61,61,57,61,57,57,57,57,57,61,61,57,61,57,57,61,57,57,57,57,57,61,57,57,61,57,61,57,61,61,61,61,61,61,57,57,57,57,61,61,57,61,57,61,57,61,61,57],"f":"``````````````{{c{d{{b{e}}}}}{{h{gf}}}j{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}}{{h{{n{k{l{m}}}}f}}}j{}{}{}{}{}}{{d{d{c}}{d{{b{e}}}}{d{{b{g}}}}{d{i}}{d{A`k}}}{{h{Abf}}}{}{}{}{}{AdAf}}{Ah{{h{Ahf}}}}{{c{d{e}}}{{h{gf}}}j{}{}}`{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}c{}{}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}e{}{}}{{Ah{Bb{{d{B`}}}}}{{h{cf}}}{}}{{Ah{Bb{{d{B`}}}}}{{h{{An{}{{Aj{c}}{Al{e}}}}f}}}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{{l{i}}{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{n{{l{i}}{l{g}}}}f}}}j{}{}{}}{{AhAh}{{h{{Bd{c}}f}}}{}}{{{d{c}}Ah{d{{Bd{e}}}}}{{h{{l{e}}f}}}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{l{i}}f}}}j{}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{i{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}{d{k}}}{{h{Abf}}}j{}{}{}{}}`{{c{d{e}}{d{g}}}{{h{{n{ik}}f}}}j{}{}{}{}}``{{eAh{Bb{Ah}}}{{h{nf}}}{}{{j{c}}}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}Ah}{{h{{n{ce}}f}}}{}{}}{{eAh}{{h{nf}}}{}{{j{c}}}}{{{d{{An{}{{Aj{c}}{Al{e}}}}}}AhAh}{{h{{n{ce}}f}}}{}{}}`{{d{d{c}}{d{e}}{d{g}}{d{i}}}{{h{Abf}}}{}{}{}{}}````````{{{d{c}}}{{d{Bf}}}{}}{{{d{c}}}{{d{e}}}{}{}}{{{d{A`c}}}{{d{A`e}}}{}{}}{Ah{{d{c}}}{}}{Ah{{d{A`c}}}{}}{AhBh}{{{d{f}}{d{A`Bj}}}Bl}0{Bnf}{cc{}}{C`f}{{}Ah}{ce{}{}}{{{d{c}}}Cb{}}{c{{h{e}}}{}{}}0{{{d{c}}}Cd{}}3````{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Cj{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{D`{c}}}}}}}}Cn}}{{c{d{{b{e}}}}}{{h{gf}}}j{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}}{{h{{n{k{l{m}}}}f}}}j{}{}{}{}{}}{{d{d{c}}{d{{b{e}}}}{d{b}}{d{g}}{d{A`i}}}{{h{Abf}}}{}{}{}{AdAf}}{{{d{c}}}{{d{e}}}{}{}}00{{{d{A`c}}}{{d{A`e}}}{}{}}00{{{d{{Cj{c}}}}}{{h{BhBn}}}Cf}{{{d{{D`{c}}}}}{{h{BhBn}}}Cf}{{{d{{Cj{c}}}}}{{Cj{c}}}{DbCf}}{{{d{{D`{c}}}}}{{D`{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}0{{{d{c}}}Bh{}}0{{c{d{e}}}{{h{gf}}}j{}{}}{Ah{{d{c}}}{}}00{Ah{{d{A`c}}}{}}00{{cDdDf}{{h{{Cj{e}}Bn}}}DhCf}{{cDdDf}{{h{{D`{e}}Bn}}}DhCf}{AhBh}00{{{d{{Cj{c}}}}{d{{Cj{c}}}}}Ab{DjCf}}{{{d{{D`{c}}}}{d{{D`{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}000{{{d{{Cj{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{D`{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}00{{{d{{Cj{c}}}}{d{A`e}}}BhCfDn}{{}Ah}00{ce{}{}}00{{c{d{e}}{d{g}}}{{h{{n{ik}}f}}}j{}{}{}{}}````{{{d{{Cj{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{D`{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Cj{c}}}}Dd}AhCf}{{{d{{D`{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}0{{eAh{Bb{Ah}}}{{h{nf}}}{}{{j{c}}}}{c{{h{e}}}{}{}}00000{{{d{c}}}Cd{}}00{{d{d{c}}{d{e}}d{d{g}}}{{h{Abf}}}{}{}{}}:::`````````````````{{{d{{Eb{e}}}}}{{d{c}}}Ed{{Cf{}{{Ef{c}}}}}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Eh{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Ej{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{El{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Eb{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{En{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{F`{c}}}}}}}}Cn}}{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Fb{c}}}}}}}}Cn}}``{{{d{c}}}{{d{e}}}{}{}}000000{{{d{A`c}}}{{d{A`e}}}{}{}}000000{{{d{{Eh{c}}}}}{{h{BhBn}}}Cf}{{{d{{Ej{c}}}}}{{h{BhBn}}}Cf}{{{d{{El{c}}}}}{{h{BhBn}}}Cf}{{{d{{Eb{c}}}}}{{h{BhBn}}}Cf}{{{d{{En{c}}}}}{{h{BhBn}}}Cf}{{{d{{F`{c}}}}}{{h{BhBn}}}Cf}{{{d{{Fb{c}}}}}{{h{BhBn}}}Cf}{{{d{{Eh{c}}}}}{{Eh{c}}}{DbCf}}{{{d{{Ej{c}}}}}{{Ej{c}}}{DbCf}}{{{d{{El{c}}}}}{{El{c}}}{DbCf}}{{{d{{Eb{c}}}}}{{Eb{c}}}{DbCf}}{{{d{{En{c}}}}}{{En{c}}}{DbCf}}{{{d{{F`{c}}}}}{{F`{c}}}{DbCf}}{{{d{{Fb{c}}}}}{{Fb{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}000000{{{d{c}}}Bh{}}0000000{{}{{Eb{c}}}Cf}{{}{{En{c}}}{FdCf}}{{}{{F`{c}}}{FdCf}}{{}{{Fb{c}}}Cf}{Ah{{d{c}}}{}}000000{Ah{{d{A`c}}}{}}000000{{cDdDf}{{h{{Eh{e}}Bn}}}DhCf}{{cDdDf}{{h{{Ej{e}}Bn}}}DhCf}{{cDdDf}{{h{{El{e}}Bn}}}DhCf}{{cDdDf}{{h{{Eb{e}}Bn}}}DhCf}{{cDdDf}{{h{{En{e}}Bn}}}DhCf}{{cDdDf}{{h{{F`{e}}Bn}}}DhCf}{{cDdDf}{{h{{Fb{e}}Bn}}}DhCf}{AhBh}000000{{{d{{Eb{c}}}}{d{{Eb{c}}}}}Ab{DjCf}}{{{d{{En{c}}}}{d{{En{c}}}}}Ab{DjCf}}{{{d{{F`{c}}}}{d{{F`{c}}}}}Ab{DjCf}}{{{d{{Fb{c}}}}{d{{Fb{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}0000000{{{d{{Eh{c}}}}Ah}eCf{}}{{{d{{En{c}}}}Ah}eCf{}}10{{{d{{Eh{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Ej{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{El{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Eb{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{En{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{F`{c}}}}{d{A`Bj}}}Bl{DlCf}}{{{d{{Fb{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}00{c{{Eb{e}}}Ed{{Cf{}{{Ef{c}}}}}}1111```{{AhAh}Ah}``````{{{d{{Eb{c}}}}{d{A`e}}}BhCfDn}{{}Ah}000000{ce{}{}}000000{{{d{{En{c}}}}}AhCf}{{{d{{b{{Ff{c}}}}}}}{{h{{Fh{c}}f}}}Fj}`````````{{{d{{Eh{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Ej{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{El{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Eb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{En{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{F`{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Fb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Eh{c}}}}Dd}AhCf}{{{d{{Ej{c}}}}Dd}AhCf}{{{d{{El{c}}}}Dd}AhCf}{{{d{{Eb{c}}}}Dd}AhCf}{{{d{{En{c}}}}Dd}AhCf}{{{d{{F`{c}}}}Dd}AhCf}{{{d{{Fb{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}000000{{{d{{Eh{c}}}}Ah}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{En{c}}}}Ah}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{Eh{c}}}}AhAh}{{h{{n{eg}}f}}}Cf{}{}}{{{d{{En{c}}}}AhAh}{{h{{n{eg}}f}}}Cf{}{}}{c{{h{e}}}{}{}}0000000000000{{{d{c}}}Cd{}}000000{ce{}{}}000000````{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{{b{Fn}}}}}{{h{BhC`}}}Fj}{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{e}}}{{h{BhC`}}}FjG`}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{{Fl{c}}}}}{{Fl{c}}}{DbFj}}{{{d{c}}{d{A`e}}}Bh{}{}}{{{d{c}}}Bh{}}{Ah{{d{c}}}{}}0{Ah{{d{A`c}}}{}}0{AhBh}0{{{d{C`}}{d{A`Bj}}}Bl}0{cc{}}{BnC`}1{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}{d{A`{b{Fn}}}}}{{h{BhC`}}}Fj}{{{d{A`{Fl{c}}}}{d{{b{Fn}}}}}{{h{cC`}}}Fj}{{}Ah}0{ce{}{}}0{{{d{{b{Fn}}}}}{{Fl{c}}}Fj}{{{d{c}}}e{}{}}{{{d{c}}}Cb{}}{c{{h{e}}}{}{}}000{{{d{c}}}Cd{}}055```{e{{h{BhBn}}}Cf{{Cl{}{{Ch{{d{{Gb{c}}}}}}}}Cn}}{{e{d{{b{g}}}}}{{h{if}}}Cf{{j{{F`{c}}}}}{}{}}{{e{d{g}}{d{{b{i}}}}{d{{b{k}}}}}{{h{{n{m{l{o}}}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}{}}{{{d{{Fb{c}}}}{d{e}}{d{{b{g}}}}{d{b}}{d{i}}{d{A`k}}}{{h{Abf}}}Cf{}{}{}{AdAf}}{{{d{c}}}{{d{e}}}{}{}}0{{{d{A`c}}}{{d{A`e}}}{}{}}0{{{d{{Gb{c}}}}}{{h{BhBn}}}Cf}{{{d{{Gb{c}}}}}{{Gb{c}}}{DbCf}}{{{d{c}}{d{A`e}}}Bh{}{}}{{{d{c}}}Bh{}}{{e{d{g}}}{{h{if}}}Cf{{j{{F`{c}}}}}{}{}}{Ah{{d{c}}}{}}0{Ah{{d{A`c}}}{}}0{{cDdDf}{{h{{Gb{e}}Bn}}}DhCf}{AhBh}0{{{d{{Gb{c}}}}{d{{Gb{c}}}}}Ab{DjCf}}{{{d{c}}{d{e}}}Ab{}{}}0{{{d{{Gb{c}}}}{d{A`Bj}}}Bl{DlCf}}{cc{}}0{{{d{{Gb{c}}}}{d{A`e}}}BhCfDn}{{}Ah}0{ce{}{}}0{{e{d{g}}{d{{b{i}}}}}{{h{{n{{l{k}}{l{m}}}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}}{{{d{c}}Ah{d{{Bd{e}}}}}{{h{{l{e}}f}}}{}{}}{{c{d{e}}Ah{d{{Bd{g}}}}}{{h{{l{i}}f}}}j{}{}{}}{{c{d{e}}{d{{b{g}}}}}{{h{{n{i{l{k}}}}f}}}j{}{}{}{}}{{c{d{e}}{d{{b{g}}}}{d{{b{i}}}}{d{k}}}{{h{Abf}}}j{}{}{}{}}{{e{d{g}}{d{i}}}{{h{{n{km}}f}}}Cf{{j{{F`{c}}}}}{}{}{}{}}`{{{d{{Gb{c}}}}eDd}{{h{BhBn}}}CfE`}{{{d{{Gb{c}}}}Dd}AhCf}{{{d{c}}}e{}{}}{{eAh{Bb{Ah}}}{{h{{n{{F`{g}}{Fb{g}}}}f}}}{}{{j{c}}}Cf}{c{{h{e}}}{}{}}000{{{d{c}}}Cd{}}0{{{d{{Fb{c}}}}{d{e}}{d{g}}d{d{i}}}{{h{Abf}}}Cf{}{}{}}==","D":"ACh","p":[[1,"slice"],[1,"reference"],[6,"PCSError",41],[6,"Result",462],[10,"Borrow",463],[5,"Vec",464],[1,"tuple"],[0,"mut"],[1,"bool"],[10,"RngCore",465],[10,"CryptoRng",465],[1,"usize"],[17,"ProverParam"],[17,"VerifierParam"],[10,"StructuredReferenceString",0],[1,"str"],[6,"Option",466],[5,"Radix2EvaluationDomain",467],[10,"Error",468],[1,"unit"],[5,"Formatter",469],[8,"Result",469],[6,"SerializationError",470],[6,"TranscriptError",367,471],[5,"String",472],[5,"TypeId",473],[10,"Pairing",474],[17,"Item"],[5,"MultilinearKzgProof",67],[10,"Iterator",475],[10,"Send",476],[5,"MultilinearKzgBatchProof",67],[10,"Clone",477],[6,"Compress",478],[6,"Validate",478],[10,"Read",479],[10,"PartialEq",480],[10,"Debug",469],[10,"Hasher",481],[10,"Write",479],[5,"Commitment",145,482],[10,"AffineRepr",483],[17,"G1Affine"],[5,"MultilinearUniversalParams",145,484],[5,"MultilinearProverParam",145,484],[5,"MultilinearVerifierParam",145,484],[5,"UnivariateUniversalParams",145,485],[5,"UnivariateProverParam",145,485],[5,"UnivariateVerifierParam",145,485],[10,"Default",486],[8,"MLE",67],[5,"DenseMultilinearExtension",487],[10,"PrimeField",488],[5,"IOPTranscript",367],[1,"u8"],[10,"CanonicalSerialize",478],[5,"UnivariateKzgProof",408],[10,"PolynomialCommitmentScheme",0],[10,"UnivariatePCS",0],[5,"MultilinearKzgPCS",67],[5,"UnivariateKzgPCS",408]],"r":[[4,41],[145,482],[146,67],[147,67],[148,67],[149,67],[150,484],[151,484],[152,484],[153,41],[154,0],[155,0],[156,408],[157,408],[158,408],[159,485],[160,485],[161,485],[281,489],[304,489],[370,471]],"b":[[55,"impl-Display-for-PCSError"],[56,"impl-Debug-for-PCSError"],[57,"impl-From%3CSerializationError%3E-for-PCSError"],[59,"impl-From%3CTranscriptError%3E-for-PCSError"],[386,"impl-Debug-for-TranscriptError"],[387,"impl-Display-for-TranscriptError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAADIBIAAFAAAAMgAIADwAAQA/AAQASAABAE0ADQBcABIAcgADAH4ABQCFAAgAjwACAJMAAwCaAAUAowAHAK0AVgAIAQYAEgEAACEBBwA7ARQAVAEbAHYBDgCGAQAAigEBAI8BCQCcAQAAoAEHAKkBCgC2AQIAvQEAAMIBAgDGAQUAzQEBAA=="}],\ +["jf_plonk",{"t":"EGPPNNNNNCNNNNCNNNNNNNCNNNNNNNNCNCNNNNCCFKFNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNSPPPPPPPPPPPGPPPGPPPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNRFRRKRRNNCNNNNNNNNNNNNNNMNMNCNNNNMNNNFFNNNNNNNNNNNHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFIIFFFFFFFIFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOONOOOOOOOOOOOOOONNNNNNNNNNNNNNNNNNNNOOONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNOOOKFFFNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNN","n":["PlonkError","PlonkType","TurboPlonk","UltraPlonk","__clone_box","as_any","as_any_mut","borrow","borrow_mut","circuit","clone","clone_into","clone_to_uninit","clone_to_uninit","constants","deref","deref_mut","drop","eq","equivalent","equivalent","equivalent","errors","fmt","from","hash","init","into","into_any","into_any_arc","into_any_rc","proof_system","to_owned","transcript","try_from","try_into","type_id","vzip","plonk_verifier","transcript","BatchProofVar","BatchableCircuit","VerifyingKeyVar","__clone_box","__clone_box","aggregate_verify_keys","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","partial_verify_circuit","to_owned","to_owned","to_vec","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","RescueTranscriptVar","as_any","as_any_mut","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","try_from","try_into","type_id","vzip","KECCAK256_STATE_SIZE","CircuitError","DivisionError","DomainCreationError","IndexError","IndexTooLarge","InvalidParameters","IoError","IteratorOutOfRange","NonNativeFieldOverflow","PCSError","ParameterError","PlonkError","PublicInputsDoNotMatch","RescueError","SerializationError","SnarkError","SnarkError","SnarkLookupUnsupported","WrongProof","WrongQuotientPolyDegree","as_any","as_any","as_any_mut","as_any_mut","as_error_source","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Error","PlonkKzgSnark","Proof","ProvingKey","UniversalSNARK","UniversalSRS","VerifyingKey","as_any","as_any_mut","batch_arg","batch_prove","batch_verify","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","new","preprocess","preprocess","prove","prove","structs","try_from","try_into","type_id","universal_setup","verify","verify","verify_batch_proof","vzip","BatchArgument","Instance","__clone_box","aggregate_verify_keys","as_any","as_any","as_any_mut","as_any_mut","batch_prove","borrow","borrow","borrow_mut","borrow_mut","build_batch_proof_and_vks_for_test","circuit_mut_ref","clone","clone_into","clone_to_uninit","decide","deref","deref","deref_mut","deref_mut","drop","drop","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_rc","into_any_rc","partial_verify","setup_instance","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verify_key_ref","vzip","vzip","BatchProof","CommitKey","OpenKey","PlookupEvaluations","PlookupProof","PlookupProvingKey","PlookupVerifyingKey","Proof","ProofEvaluations","ProvingKey","UniversalSrs","VerifyingKey","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","batch_check","beta_h","beta_h","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","check","check","check","check","check","check","check","check","check","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_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","convert_te_coordinates_to_scalars","create_variables","default","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","deserialize_with_mode","domain_size","drop","drop","drop","drop","drop","drop","drop","drop","drop","dummy","dummy","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","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from_str","from_str","g","h","h","hash","hash","hash","hash","hash","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is_empty","is_merged","k","len","num_inputs","open_key","opening_proof","perm_next_eval","plookup_proof","plookup_vk","poly_evals","powers_of_g","powers_of_g","powers_of_g","powers_of_h","powers_of_h","prod_perm_poly_comm","selector_comms","serialize","serialize","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","serialized_size","shifted_opening_proof","sigma_comms","split_quot_poly_comms","tag","tag","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","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_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","vk","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","wire_sigma_evals","wires_evals","wires_poly_comms","PlonkTranscript","RescueTranscript","SolidityTranscript","StandardTranscript","append_commitment","append_commitment","append_commitment","append_commitments","append_field_elem","append_field_elem","append_field_elem","append_field_elems","append_message","append_message","append_message","append_message","append_plookup_evaluations","append_plookup_evaluations","append_proof_evaluations","append_proof_evaluations","append_vk_and_pub_input","append_vk_and_pub_input","append_vk_and_pub_input","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","get_challenge","get_challenge","get_challenge","get_challenge","get_n_challenges","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","new","new","new","new","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip"],"q":[[0,"jf_plonk"],[38,"jf_plonk::circuit"],[40,"jf_plonk::circuit::plonk_verifier"],[101,"jf_plonk::circuit::transcript"],[119,"jf_plonk::constants"],[120,"jf_plonk::errors"],[187,"jf_plonk::proof_system"],[224,"jf_plonk::proof_system::batch_arg"],[272,"jf_plonk::proof_system::structs"],[632,"jf_plonk::transcript"],[715,"dyn_clone::sealed"],[716,"core::any"],[717,"jf_relation::constraint_system"],[718,"core::fmt"],[719,"core::result"],[720,"core::hash"],[721,"alloc::boxed"],[722,"alloc::sync"],[723,"alloc::rc"],[724,"alloc::vec"],[725,"jf_relation"],[726,"ark_ec::pairing"],[727,"jf_plonk::circuit::plonk_verifier::structs"],[728,"core::clone"],[729,"ark_ff::fields::prime"],[730,"core::cmp"],[731,"jf_relation::gadgets::ecc::conversion"],[732,"ark_ec::models::short_weierstrass"],[733,"ark_ec::models::short_weierstrass::affine"],[734,"jf_relation::gadgets::ecc"],[735,"jf_relation::gadgets::ultraplonk::mod_arith"],[736,"jf_rescue"],[737,"ark_ec::models::twisted_edwards"],[738,"core::error"],[739,"std::io::error"],[740,"ark_serialize::error"],[741,"jf_pcs::errors"],[742,"alloc::string"],[743,"rand_core"],[744,"core::option"],[745,"jf_plonk::proof_system::snark"],[746,"core::iter::traits::iterator"],[747,"core::marker"],[748,"ark_ff::fields"],[749,"serde::de"],[750,"ark_serialize"],[751,"std::io"],[752,"serde::ser"],[753,"tagged_base64"],[754,"jf_plonk::transcript::rescue"],[755,"jf_pcs::structs"],[756,"jf_plonk::transcript::solidity"],[757,"jf_plonk::transcript::standard"]],"i":[0,0,6,6,6,6,6,6,6,0,6,6,6,6,0,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6,6,0,6,0,6,6,6,6,0,0,0,0,0,23,18,17,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,23,23,23,18,18,18,23,18,23,18,23,18,23,18,23,18,23,18,23,18,18,18,23,18,18,23,18,23,18,23,18,23,18,0,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,0,44,44,44,44,44,44,44,44,44,44,45,0,44,44,44,0,44,45,44,45,44,45,44,45,44,44,45,44,45,44,45,44,45,44,45,44,44,45,45,44,44,44,44,44,44,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,44,45,89,0,89,89,0,89,89,59,59,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,89,59,89,59,0,59,59,59,89,89,59,59,59,0,0,60,90,90,60,90,60,90,90,60,90,60,0,60,60,60,60,90,90,60,90,60,90,60,90,60,90,60,90,60,90,60,90,90,60,90,90,60,90,60,90,60,90,60,60,90,60,0,0,0,0,0,0,0,0,0,0,0,0,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,61,62,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,30,52,69,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,52,56,67,52,69,70,51,71,30,72,30,56,67,52,69,70,51,71,30,72,52,30,56,67,52,69,70,51,71,30,72,56,56,56,67,67,67,52,52,52,69,69,69,70,70,70,51,51,51,71,71,71,30,30,30,72,72,72,56,56,67,52,52,69,70,51,71,30,72,56,67,52,52,69,70,51,71,30,72,56,52,62,61,62,56,67,52,69,70,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,52,30,30,52,30,30,56,69,56,30,56,61,91,62,61,62,56,30,56,52,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,30,56,56,52,56,67,52,69,70,51,71,30,72,56,52,56,56,56,56,67,52,52,52,69,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,56,67,52,69,70,51,71,30,72,51,56,67,52,69,70,51,71,30,72,69,69,56,0,0,0,0,83,85,86,86,83,85,86,86,86,83,85,87,83,86,83,86,83,85,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,86,83,85,87,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87,86,83,85,87,83,85,87,83,85,87,83,85,87,83,85,87],"f":"````{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}`{{{b{l}}}l}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}0`{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{{{b{l}}{b{l}}}A`}{{{b{c}}{b{e}}}A`{}{}}00`{{{b{l}}{b{jAb}}}{{Af{fAd}}}}{cc{}}{{{b{l}}{b{jc}}}fAh}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}`{{{b{c}}}e{}{}}`{c{{Af{e}}}{}{}}0{{{b{c}}}B`{}}6`````{{{b{c}}d}f{}}0{{{b{jBb}}{b{{Bf{{Bd{c}}}}}}{b{{Bf{{Bd{c}}}}}}}{{Af{{Bh{{Bd{c}}}}Bj}}}Bl}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{Bn{c}}}}}{{Bn{c}}}{C`Cb}}{{{b{{Bd{c}}}}}{{Bd{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}0{{{b{c}}}f{}}0{n{{b{c}}}{}}0{n{{b{jc}}}{}}0{nf}0{{{b{{Bn{c}}}}{b{{Bn{c}}}}}A`{CdCb}}{{{b{{Bd{c}}}}{b{{Bd{c}}}}}A`{CdBl}}{{{b{c}}{b{e}}}A`{}{}}00000{{{b{{Bn{c}}}}{b{jAb}}}Cf{ChCb}}{{{b{{Bd{c}}}}{b{jAb}}}Cf{ChBl}}{cc{}}0{{}n}0{ce{}{}}0{{{Aj{c}}}{{Aj{h}}}{}}0{{{Al{c}}}{{Al{h}}}{}}0{{{An{c}}}{{An{h}}}{}}0{{{b{j{Cj{c}}}}{b{{Cl{g}}}}}{{Af{{Bd{g}}Bj}}}{CbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{{b{j{Cj{c}}}}{b{{Dh{c}}}}{b{{Dh{c}}}}{b{{Bf{{Bd{g}}}}}}{b{{Bf{{Dj{c}}}}}}{b{{Bn{c}}}}Dl}{{Af{{E`{DnDn}}Bj}}}{EbCn}{{Db{}{{D`{}}}}Ed}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{{b{c}}}e{}{}}0{{{b{{Bd{c}}}}}{{Bh{Dl}}}Bl}{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}099`{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{cc{}}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}>>=3`````````````````````<<;;{{{b{c}}}{{b{Ef}}}{}};;::998877{{{b{Eh}}{b{jAb}}}Cf}0{{{b{Ej}}{b{jAb}}}Cf}0{EjEh}9{ElEh}{BjEh}{EnEh}{F`Eh}{FbEh}>==<<;;::99{{{b{c}}}Fd{}}0{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}0??```````{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}`{{{b{jc}}{b{{Bf{{b{e}}}}}}{b{{Bf{{b{{Ff{k}}}}}}}}}{{Af{{Fh{k}}Eh}}}{FjFl}Fn{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{g}}{Dd{{Df{i}}}}}}}}{{{b{{Bf{{b{{Cl{g}}}}}}}}{b{{Bf{{b{Bf}}}}}}{b{{Bf{{b{{G`{g}}}}}}}}{b{{Bf{{Gd{{Bh{Gb}}}}}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{n{{b{c}}}{}}{n{{b{jc}}}{}}{nf}{cc{}}{{}n}{ce{}{}}{{{Aj{c}}}{{Aj{h}}}{}}{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}{{}{{Gf{g}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}{b{e}}}{{Af{{E`{gi}}k}}}{}Fn{}{}{}}0{{{b{jc}}{b{e}}{b{g}}{Gd{{Bh{Gb}}}}}{{Af{ik}}}{FjFl}Fn{}{}{}}0`{c{{Af{e}}}{}{}}0{{{b{c}}}B`{}}{{n{b{jc}}}{{Af{eg}}}{FlFj}{}{}}{{{b{c}}{b{Bf}}{b{e}}{Gd{{Bh{Gb}}}}}{{Af{fg}}}{}{}{}}0{{{b{{Bf{{b{{Cl{g}}}}}}}}{b{{Bf{{b{Bf}}}}}}{b{{Fh{g}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}};``{{{b{c}}d}f{}}{{{b{{Bf{{b{{Cl{c}}}}}}}}{b{{Bf{{b{{Cl{c}}}}}}}}}{{Af{{Bh{{Cl{c}}}}Eh}}}Bl}{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{jc}}{b{{Bf{{Gh{i}}}}}}{b{{Bf{{Gh{i}}}}}}}{{Af{{Fh{i}}Eh}}}{FjFl}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{e}}{Dd{{Df{g}}}}}}}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{jc}}{b{{Gj{i}}}}n}{{Af{{E`{{Fh{i}}{Bh{{Cl{i}}}}{Bh{{Cl{i}}}}}}Eh}}}{FjFl}{EbCn}{{Db{}{{D`{e}}}}}{{Bl{}{{D`{e}}{Dd{{Df{g}}}}}}}}{{{b{j{Gh{c}}}}}{{b{jCj}}}Bl}{{{b{{Gh{c}}}}}{{Gh{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{{{b{{Gl{c}}}}}{{Af{A`Eh}}}Bl}{n{{b{c}}}{}}0{n{{b{jc}}}{}}0{nf}0{cc{}}0{{}n}0{ce{}{}}0{{{Aj{c}}}{{Aj{h}}}{}}0{{{Al{c}}}{{Al{h}}}{}}{{{An{c}}}{{An{h}}}{}}0{{bb{b{{Bf{{Cl{g}}}}}}{b{Bf}}{b{{Fh{g}}}}}{{Af{E`Eh}}}{EbCn}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{{Gj{g}}}}CjGn}{{Af{{Gh{g}}Eh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}e{}{}}{c{{Af{e}}}{}{}}000{{{b{c}}}B`{}}0{{{b{{Gh{c}}}}}{{b{{Cl{c}}}}}Bl}99````````````{{{b{c}}d}f{}}00000000{{{b{c}}}{{b{h}}}{}}00000000{{{b{jc}}}{{b{jh}}}{}}00000000{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{G`{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Hf{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Fh{c}}}}}}}}Hd}}{e{{Af{fEn}}}Hh{{Hb{}{{H`{{b{{Hj{c}}}}}}}}Hd}}{e{{Af{fEn}}}Hh{{Hb{}{{H`{{b{{Hl{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Ff{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Hn{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{Cl{c}}}}}}}}Hd}}{e{{Af{fEn}}}Bl{{Hb{}{{H`{{b{{I`{c}}}}}}}}Hd}}``{{{b{c}}}{{b{e}}}{}{}}00000000{{{b{jc}}}{{b{je}}}{}{}}00000000{{{b{{G`{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hf{c}}}}}{{Af{fEn}}}Bl}{{{b{{Fh{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hj{c}}}}}{{Af{fEn}}}Hh}{{{b{{Hl{c}}}}}{{Af{fEn}}}Hh}{{{b{{Ff{c}}}}}{{Af{fEn}}}Bl}{{{b{{Hn{c}}}}}{{Af{fEn}}}Bl}{{{b{{Cl{c}}}}}{{Af{fEn}}}Bl}{{{b{{I`{c}}}}}{{Af{fEn}}}Bl}{{{b{{G`{c}}}}}{{G`{c}}}{C`Bl}}{{{b{{Hf{c}}}}}{{Hf{c}}}{C`Bl}}{{{b{{Fh{c}}}}}{{Fh{c}}}{C`Bl}}{{{b{{Hj{c}}}}}{{Hj{c}}}{C`Hh}}{{{b{{Hl{c}}}}}{{Hl{c}}}{C`Hh}}{{{b{{Ff{c}}}}}{{Ff{c}}}{C`Bl}}{{{b{{Hn{c}}}}}{{Hn{c}}}{C`Bl}}{{{b{{Cl{c}}}}}{{Cl{c}}}{C`Bl}}{{{b{{I`{c}}}}}{{I`{c}}}{C`Bl}}{{{b{c}}{b{je}}}f{}{}}00000000{{{b{c}}}f{}}00000000{{{b{{Cl{g}}}}}{{Bh{c}}}Cn{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{{Fh{g}}}}{b{j{Cj{c}}}}n{Gd{c}}}{{Af{{Bn{c}}Eh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}Bl}}{{}{{Hj{c}}}Hh}{n{{b{c}}}{}}00000000{n{{b{jc}}}{}}00000000{c{{Af{{G`{e}}}}}IbBl}{c{{Af{{Fh{e}}}}}IbBl}{{cIdIf}{{Af{{G`{e}}En}}}IhBl}{{cIdIf}{{Af{{Hf{e}}En}}}IhBl}{{cIdIf}{{Af{{Fh{e}}En}}}IhBl}{{cIdIf}{{Af{{Hj{e}}En}}}IhHh}{{cIdIf}{{Af{{Hl{e}}En}}}IhHh}{{cIdIf}{{Af{{Ff{e}}En}}}IhBl}{{cIdIf}{{Af{{Hn{e}}En}}}IhBl}{{cIdIf}{{Af{{Cl{e}}En}}}IhBl}{{cIdIf}{{Af{{I`{e}}En}}}IhBl}`{nf}00000000{n{{Fh{c}}}Bl}{{nn}{{Cl{c}}}Bl}{{{b{{G`{c}}}}{b{{G`{c}}}}}A`{CdBl}}{{{b{{Hf{c}}}}{b{{Hf{c}}}}}A`{CdBl}}{{{b{{Fh{c}}}}{b{{Fh{c}}}}}A`{CdBl}}{{{b{{Hj{c}}}}{b{{Hj{c}}}}}A`{CdHh}}{{{b{{Hl{c}}}}{b{{Hl{c}}}}}A`{CdHh}}{{{b{{Ff{c}}}}{b{{Ff{c}}}}}A`{CdBl}}{{{b{{Hn{c}}}}{b{{Hn{c}}}}}A`{CdBl}}{{{b{{Cl{c}}}}{b{{Cl{c}}}}}A`{CdBl}}{{{b{{I`{c}}}}{b{{I`{c}}}}}A`{CdBl}}{{{b{c}}{b{e}}}A`{}{}}00000000000000000000000000{{{b{{G`{c}}}}{b{jAb}}}CfBl}{{{b{{G`{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Hf{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Fh{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Fh{c}}}}{b{jAb}}}CfBl}{{{b{{Hj{c}}}}{b{jAb}}}Cf{ChHh}}{{{b{{Hl{c}}}}{b{jAb}}}Cf{ChHh}}{{{b{{Ff{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Hn{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{Cl{c}}}}{b{jAb}}}Cf{ChBl}}{{{b{{I`{c}}}}{b{jAb}}}Cf{ChBl}}{cc{}}00{{{G`{c}}}{{Fh{c}}}Bl}111111{{{b{Ij}}}{{Af{{G`{c}}e}}}Bl{}}{{{b{Ij}}}{{Af{{Fh{c}}e}}}Bl{}}```{{{b{{G`{c}}}}{b{je}}}fBlAh}{{{b{{Hf{c}}}}{b{je}}}fBlAh}{{{b{{Fh{c}}}}{b{je}}}fBlAh}{{{b{{Hj{c}}}}{b{je}}}f{IlHh}Ah}{{{b{{Hl{c}}}}{b{je}}}f{IlHh}Ah}{{}n}00000000{ce{}{}}00000000{{{Aj{c}}}{{Aj{h}}}{}}00000000{{{Al{c}}}{{Al{h}}}{}}00000000{{{An{c}}}{{An{h}}}{}}00000000{{{b{{Fh{c}}}}}A`Bl}``{{{b{{Fh{c}}}}}nBl}``````````````{{{b{{G`{c}}}}e}AfBlIn}{{{b{{Fh{c}}}}e}AfBlIn}{{{b{{G`{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hf{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Fh{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hj{c}}}}eId}{{Af{fEn}}}HhJ`}{{{b{{Hl{c}}}}eId}{{Af{fEn}}}HhJ`}{{{b{{Ff{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Hn{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{Cl{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{I`{c}}}}eId}{{Af{fEn}}}BlJ`}{{{b{{G`{c}}}}Id}nBl}{{{b{{Hf{c}}}}Id}nBl}{{{b{{Fh{c}}}}Id}nBl}{{{b{{Hj{c}}}}Id}nHh}{{{b{{Hl{c}}}}Id}nHh}{{{b{{Ff{c}}}}Id}nBl}{{{b{{Hn{c}}}}Id}nBl}{{{b{{Cl{c}}}}Id}nBl}{{{b{{I`{c}}}}Id}nBl}```{{}Fd}0{{{b{c}}}e{}{}}00000000{{{b{c}}}Fd{}}0{Jb{{Af{{G`{c}}e}}}Bl{}}{{{b{Jb}}}{{Af{{G`{c}}e}}}Bl{}}{c{{Af{e}}}{}{}}{Bh{{Af{{G`{e}}g}}}{{Db{}{{D`{}}{Jd{}}}}}{{Bl{}{{Dd{{Df{c}}}}}}}{}}1{{{b{Jb}}}{{Af{{Fh{c}}e}}}Bl{}}2{Jb{{Af{{Fh{c}}e}}}Bl{}}3{{{Bh{c}}}{{Af{{Hj{c}}e}}}Hh{}}44444444444444{{{b{c}}}B`{}}00000000`{ce{}{}}00000000```````{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJj}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}Cb{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Jh{g}}}}}{{Af{fEh}}}{}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Bf{{Jh{g}}}}}}}{{Af{fEh}}}{}{{Db{}{{D`{}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}b}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{Bf}}}{{Af{fEh}}}}{{{b{jJl}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{jJn}}{b{{Bf{Gb}}}}{b{{Bf{Gb}}}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{Hl}}}{{Af{fEh}}}{EbCn}}{{{b{jJl}}{b{Hl}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{Hj}}}{{Af{fEh}}}{EbCn}}{{{b{jJl}}{b{Hj}}}{{Af{fEh}}}}{{{b{j{Jf{c}}}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}{EbCn}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJj}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}Cb{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{jJl}}{b{{Cl{g}}}}{b{Bf}}}{{Af{fEh}}}{}{{Db{}{{D`{c}}}}}{{Bl{}{{D`{c}}{Dd{{Df{e}}}}}}}}{{{b{c}}}{{b{h}}}{}}00{{{b{jc}}}{{b{jh}}}{}}00{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{n{{b{c}}}{}}00{n{{b{jc}}}{}}00{nf}00{cc{}}00{{{b{jJl}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{j{Jf{c}}}}{b{{Bf{Gb}}}}}{{Af{Eh}}}{EbCn}}{{{b{jJj}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{jJn}}{b{{Bf{Gb}}}}}{{Af{Eh}}}}{{{b{jJl}}{b{{Bf{{b{{Bf{Gb}}}}}}}}}{{Af{BhEh}}}}{{}n}00{ce{}{}}00{{{Aj{c}}}{{Aj{h}}}{}}00{{{Al{c}}}{{Al{h}}}{}}00{{{An{c}}}{{An{h}}}{}}00{{{b{{Bf{Gb}}}}}Jl}{{{b{{Bf{Gb}}}}}{{Jf{c}}}{EbCn}}{{{b{{Bf{Gb}}}}}Jj}{{{b{{Bf{Gb}}}}}Jn}{c{{Af{e}}}{}{}}00000{{{b{c}}}B`{}}00999","D":"AFh","p":[[1,"reference"],[5,"Private",715],[1,"unit"],[10,"Any",716],[0,"mut"],[6,"PlonkType",0,717],[1,"usize"],[1,"bool"],[5,"Formatter",718],[5,"Error",718],[6,"Result",719],[10,"Hasher",720],[5,"Box",721],[5,"Arc",722],[5,"Rc",723],[5,"TypeId",716],[10,"BatchableCircuit",40],[5,"VerifyingKeyVar",40],[1,"slice"],[5,"Vec",724],[6,"CircuitError",725],[10,"Pairing",726],[5,"BatchProofVar",40,727],[10,"Clone",728],[10,"PrimeField",729],[10,"PartialEq",730],[8,"Result",718],[10,"Debug",718],[5,"PlonkCircuit",717],[5,"VerifyingKey",272],[10,"SWToTEConParam",731],[17,"BaseField"],[10,"SWCurveConfig",732],[17,"G1Affine"],[5,"Affine",733],[5,"TEPoint",734],[5,"FpElemVar",735],[8,"Variable",717],[5,"PointVariable",734],[1,"tuple"],[10,"RescueParameter",736],[10,"TECurveConfig",737],[10,"Error",738],[6,"PlonkError",120],[6,"SnarkError",120],[5,"Error",739],[6,"SerializationError",740],[6,"RescueError",736],[6,"PCSError",741],[5,"String",742],[5,"ProvingKey",272],[5,"BatchProof",272],[10,"CryptoRng",743],[10,"RngCore",743],[10,"Arithmetization",717],[5,"Proof",272],[1,"u8"],[6,"Option",744],[5,"PlonkKzgSnark",187,745],[5,"Instance",224],[8,"UniversalSrs",272],[8,"OpenKey",272],[6,"MergeableCircuitType",717],[17,"Item"],[10,"Iterator",746],[10,"Send",747],[5,"PlookupProof",272],[10,"Field",748],[5,"ProofEvaluations",272],[5,"PlookupEvaluations",272],[5,"PlookupProvingKey",272],[5,"PlookupVerifyingKey",272],[10,"Deserializer",749],[6,"Compress",750],[6,"Validate",750],[10,"Read",751],[1,"str"],[10,"Hash",720],[10,"Serializer",752],[10,"Write",751],[5,"TaggedBase64",753],[17,"ScalarField"],[5,"RescueTranscript",632,754],[5,"Commitment",755],[5,"SolidityTranscript",632,756],[10,"PlonkTranscript",632],[5,"StandardTranscript",632,757],[5,"RescueTranscriptVar",101],[10,"UniversalSNARK",187],[5,"BatchArgument",224],[8,"CommitKey",272]],"r":[[0,120],[1,717],[40,727],[188,745],[633,754],[634,756],[635,757]],"b":[[155,"impl-Display-for-PlonkError"],[156,"impl-Debug-for-PlonkError"],[157,"impl-Display-for-SnarkError"],[158,"impl-Debug-for-SnarkError"],[159,"impl-From%3CSnarkError%3E-for-PlonkError"],[161,"impl-From%3CError%3E-for-PlonkError"],[162,"impl-From%3CCircuitError%3E-for-PlonkError"],[163,"impl-From%3CSerializationError%3E-for-PlonkError"],[164,"impl-From%3CRescueError%3E-for-PlonkError"],[165,"impl-From%3CPCSError%3E-for-PlonkError"],[456,"impl-Display-for-Proof%3CE%3E"],[457,"impl-Debug-for-Proof%3CE%3E"],[459,"impl-Debug-for-BatchProof%3CE%3E"],[460,"impl-Display-for-BatchProof%3CE%3E"],[586,"impl-TryFrom%3CTaggedBase64%3E-for-Proof%3CE%3E"],[587,"impl-TryFrom%3C%26TaggedBase64%3E-for-Proof%3CE%3E"],[589,"impl-TryFrom%3CVec%3C%3CE+as+Pairing%3E::BaseField%3E%3E-for-Proof%3CE%3E"],[591,"impl-TryFrom%3C%26TaggedBase64%3E-for-BatchProof%3CE%3E"],[593,"impl-TryFrom%3CTaggedBase64%3E-for-BatchProof%3CE%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAABcCPAABAAAABQAEAAsAAwAQAAYAGAAAABoAAQAdAAIAIQAAACMAAwAsAAEALwAdAE8AAQBTAAUAWwABAF4ABwBnAAYAbwAAAHEABgCNABMAogAEAKgAAQCsAA8AwwABAMgABADOAAAA0AACANkAAgDeAAAA4AAAAOMAAADlAAMA6gADAPAAAgD0AAUA/AABAAABBAAHAQYADwEBAB0BIwBDATUAewEdAJoBCAClAS4A1wEAAN4BAQDjAQ0A+gEaACcCEwA+Ai0AbQIIAH4CAACBAgEAiAIBAIsCAACNAgEAkAIUAKoCAQCtAgIAswIIAMACCwA="}],\ ["jf_prf",{"t":"RRRKRMN","n":["Error","Input","Output","PRF","Seed","evaluate","evaluate_with_rand_seed"],"q":[[0,"jf_prf"],[7,"core::result"],[8,"core::borrow"],[9,"rand_core"]],"i":[8,8,8,0,8,8,8],"f":"`````{{ei}{{b{km}}}{}{{d{c}}}{}{{d{g}}}{}{}}{{{h{fc}}g}{{b{{j{ik}}m}}}{ln}{}{{d{e}}}{}{}{}}","D":"A`","p":[[6,"Result",7],[10,"Borrow",8],[0,"mut"],[1,"reference"],[1,"tuple"],[10,"RngCore",9],[10,"CryptoRng",9],[10,"PRF",0]],"r":[],"b":[],"c":"OjAAAAAAAAA=","e":"OjAAAAAAAAA="}],\ -["jf_relation",{"t":"GPPPPPPPPPPPPPPNNNNNCCNNNNNNCCNNNNNNNNNNSSSHKFKIGFGPPPPIINNNNMNNNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNMNNNNNNNNNMNMNNNNNMNNNMNNNNNNNNMNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNMNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNMNNNNNNNNNMNMNNMNMNMNMNNNNMNNNNMNMNMNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNTFKTKTNNNNNNNNNNCNNHNNNNNNMCHNNNNCNTKTFTKFNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFFFFKFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["CircuitError","DomainCreationError","FieldAlgebraError","GateCheckFailure","IndexError","InternalError","LookupUnsupported","ModifyFinalizedCircuit","NotSupported","ParameterError","PubInputLenMismatch","UnfinalizedCircuit","UnsupportedCurve","VarIndexOutOfBound","WrongPlonkType","as_any","as_any_mut","as_error_source","borrow","borrow_mut","constants","constraint_system","deref","deref_mut","drop","fmt","fmt","from","gadgets","gates","init","into","into_any","into_any_arc","into_any_rc","to_string","try_from","try_into","type_id","vzip","GATE_WIDTH","N_MUL_SELECTORS","N_TURBO_PLONK_SELECTORS","compute_coset_representatives","Arithmetization","BoolVar","Circuit","GateId","MergeableCircuitType","PlonkCircuit","PlonkType","TurboPlonk","TypeA","TypeB","UltraPlonk","Variable","WireId","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add_constant","add_constant_gate","add_gate","add_gate","add_range_check_variable","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","binary_emulated_sw_point_vars_select","binary_emulated_te_point_vars_select","binary_point_vars_select","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_circuit_satisfiability","check_circuit_satisfiability","check_var_bound","check_vars_bound","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","compute_extended_permutation_polynomials","compute_extended_permutation_polynomials","compute_key_table_polynomial","compute_key_table_polynomial","compute_lookup_prod_polynomial","compute_lookup_prod_polynomial","compute_lookup_sorted_vec_polynomials","compute_lookup_sorted_vec_polynomials","compute_merged_lookup_table","compute_merged_lookup_table","compute_prod_permutation_polynomial","compute_prod_permutation_polynomial","compute_pub_input_polynomial","compute_pub_input_polynomial","compute_q_dom_sep_polynomial","compute_q_dom_sep_polynomial","compute_range_table_polynomial","compute_range_table_polynomial","compute_selector_polynomials","compute_selector_polynomials","compute_table_dom_sep_polynomial","compute_table_dom_sep_polynomial","compute_wire_polynomials","compute_wire_polynomials","conditional_select","conditional_select_emulated","create_boolean_variable","create_constant_emulated_sw_point_variable","create_constant_emulated_te_point_variable","create_constant_emulated_variable","create_constant_point_variable","create_constant_variable","create_constant_variable","create_emulated_sw_point_variable","create_emulated_te_point_variable","create_emulated_variable","create_point_variable","create_public_boolean_variable","create_public_emulated_sw_point_variable","create_public_emulated_te_point_variable","create_public_emulated_variable","create_public_point_variable","create_public_variable","create_public_variable","create_table_and_lookup_variables","create_variable","create_variable","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","ecc_add","emulated_add","emulated_add_constant","emulated_add_constant_gate","emulated_add_gate","emulated_mul","emulated_mul_constant","emulated_mul_constant_gate","emulated_mul_gate","emulated_sub","emulated_sub_constant","emulated_sw_ecc_add","emulated_sw_ecc_add_gate","emulated_sw_point_witness","emulated_te_ecc_add","emulated_te_ecc_add_gate","emulated_te_point_witness","emulated_witness","enforce_bool","enforce_bool","enforce_constant","enforce_constant","enforce_emulated_sw_point_equal","enforce_emulated_te_point_equal","enforce_emulated_var_equal","enforce_equal","enforce_equal","enforce_false","enforce_geq","enforce_geq_constant","enforce_gt","enforce_gt_constant","enforce_in_range","enforce_leq","enforce_leq_constant","enforce_lt","enforce_lt_constant","enforce_on_curve","enforce_point_equal","enforce_true","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval_domain_size","eval_domain_size","false_var","finalize_for_arithmetization","finalize_for_mergeable_circuit","fixed_base_scalar_mul","fmt","fmt","fmt","fmt","from","from","from","from","from","gen_quad_poly","glv_mul","hash","hash","init","init","init","init","insert_gate","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","inverse_point","is_emulated_sw_point_equal","is_emulated_te_point_equal","is_emulated_var_equal","is_emulated_var_zero","is_equal","is_geq","is_geq_constant","is_gt","is_gt_constant","is_in_range","is_leq","is_leq_constant","is_lt","is_lt_constant","is_neutral_point","is_point_equal","is_zero","lc","lc_gate","logic_and","logic_and_all","logic_neg","logic_or","logic_or_gate","merge","mod_add","mod_add_constant","mod_add_vec","mod_mul","mod_mul_constant","mod_negate","msm","msm_with_var_scalar_length","mul","mul","mul_add","mul_add_gate","mul_constant","mul_constant_gate","mul_gate","mul_gate","neutral_point_variable","new_turbo_plonk","new_ultra_plonk","non_native_linear_gen","non_native_power_11_gate","non_native_power_11_gen","non_native_power_5_gen","non_zero_gate","num_gates","num_gates","num_inputs","num_inputs","num_range_blocks","num_vars","num_vars","num_wire_types","num_wire_types","one","one","pad_gates","pad_gates","point_witness","power_11_gate","power_11_gen","public_input","public_input","quad_poly_gate","range_bit_len","range_size","set_variable_public","set_variable_public","srs_size","srs_size","sub","sub","sub_gate","sub_gate","sum","support_lookup","support_lookup","to_owned","to_owned","to_owned","to_owned","true_var","truncate","truncate_gate","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unpack","variable_base_binary_scalar_mul","variable_base_scalar_mul","vzip","vzip","vzip","vzip","witness","witness","witness_mut","zero","zero","B","EmulatedVariable","EmulationConfig","NUM_LIMBS","SerializableEmulatedStruct","T","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","ecc","fmt","from","from_emulated_field","init","into","into_any","into_any_arc","into_any_rc","native_vars","serialize_to_native_elements","test_utils","to_emulated_field","to_owned","try_from","try_into","type_id","ultraplonk","vzip","BETA","MultiScalarMultiplicationCircuit","NEG_ALPHA","PointVariable","S","SWToTEConParam","TEPoint","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","default","deref","deref","deref_mut","deref_mut","drop","drop","emulated","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","get_x","get_x","get_y","get_y","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","inverse","msm","msm_with_var_scalar_length","serialize_to_native_elements","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","EmulatedSWPointVariable","EmulatedTEPointVariable","SWPoint","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone_into","clone_into","clone_into","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","drop","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","serialize_to_native_elements","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","test_variable_independence_for_circuit","mod_arith","FpElem","FpElemVar","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","components","components","convert_to_var","default","default","deref","deref","deref_mut","deref_mut","drop","drop","enforce_equal","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","field_elem","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","new_from_field_element","new_from_fp_elem","new_unchecked","one","param_m","param_m","to_owned","to_owned","try_from","try_from","try_into","try_into","two_power_m","two_power_m","type_id","type_id","vzip","vzip","witness","witness_fp_elem","zero","AdditionGate","BoolGate","CondSelectGate","ConstantAdditionGate","ConstantGate","ConstantMultiplicationGate","CurvePointXAdditionGate","CurvePointYAdditionGate","EdwardsCurveEquationGate","EqualityGate","FifthRootGate","Gate","IoGate","LinCombGate","LogicOrGate","LogicOrOutputGate","LookupGate","MulAddGate","MultiplicationGate","PaddingGate","QuadPolyGate","QuaternaryPointSelectXGate","QuaternaryPointSelectYGate","SubtractionGate","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_rc","downcast_ref","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","from","from","from","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","q_c","q_c","q_c","q_c","q_c","q_c","q_c","q_dom_sep","q_dom_sep","q_ecc","q_ecc","q_ecc","q_ecc","q_hash","q_hash","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lookup","q_lookup","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","table_dom_sep","table_dom_sep","table_key","table_key","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip"],"q":[[0,"jf_relation"],[40,"jf_relation::constants"],[44,"jf_relation::constraint_system"],[359,"jf_relation::gadgets"],[394,"jf_relation::gadgets::ecc"],[466,"jf_relation::gadgets::ecc::emulated"],[547,"jf_relation::gadgets::test_utils"],[548,"jf_relation::gadgets::ultraplonk"],[549,"jf_relation::gadgets::ultraplonk::mod_arith"],[622,"jf_relation::gates"],[1238,"core::any"],[1239,"core::error"],[1240,"core::fmt"],[1241,"alloc::boxed"],[1242,"alloc::sync"],[1243,"alloc::rc"],[1244,"alloc::string"],[1245,"core::result"],[1246,"core::option"],[1247,"alloc::vec"],[1248,"ark_ff::fields::prime"],[1249,"dyn_clone::sealed"],[1250,"ark_ff::fields::fft_friendly"],[1251,"jf_relation::gadgets::ecc::emulated::short_weierstrass"],[1252,"jf_relation::gadgets::emulated"],[1253,"jf_relation::gadgets::ecc::emulated::twisted_edwards"],[1254,"ark_ff::fields"],[1255,"core::clone"],[1256,"ark_poly::polynomial::univariate::dense"],[1257,"ark_ec::models::twisted_edwards::affine"],[1258,"ark_ec::models::twisted_edwards"],[1259,"core::hash"],[1260,"core::cmp"],[1261,"ark_ec::models::short_weierstrass::affine"],[1262,"jf_relation::gadgets::ecc::conversion"],[1263,"ark_ec::models::short_weierstrass"],[1264,"ark_ec::models::twisted_edwards::group"],[1265,"jf_relation::gadgets::ecc::msm"],[1266,"ark_serialize::error"],[1267,"core::iter::traits::iterator"],[1268,"core::marker"],[1269,"ark_serialize"],[1270,"std::io"],[1271,"core::default"],[1272,"jf_relation::gates::arithmetic"],[1273,"jf_relation::gates::ecc"],[1274,"jf_relation::gates::logic"],[1275,"jf_relation::gates::lookup"]],"i":[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,31,32,32,31,0,0,24,31,32,22,20,22,22,22,20,22,22,24,31,32,22,24,31,32,22,22,22,22,24,31,32,22,24,31,32,22,20,22,22,22,24,31,32,22,24,31,32,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,22,22,20,22,22,22,22,20,22,22,22,22,22,20,22,22,22,22,20,22,22,20,22,22,24,31,32,22,24,31,32,22,24,31,32,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,20,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,31,32,31,31,31,32,32,32,34,22,20,22,22,22,24,31,32,22,21,24,31,32,22,22,22,31,32,24,31,32,22,22,24,31,32,22,24,31,32,22,24,31,32,24,31,32,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,20,22,20,22,22,20,22,20,22,20,22,20,22,22,22,22,20,22,22,22,22,20,22,34,22,20,22,20,22,22,20,22,24,31,32,22,20,22,22,24,31,32,22,24,31,32,22,24,31,32,22,22,22,22,24,31,32,22,20,22,22,20,22,26,0,0,26,0,26,37,37,37,37,37,37,37,37,37,37,0,37,37,0,37,37,37,37,37,37,50,0,0,37,37,37,37,0,37,53,0,53,0,53,0,0,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,40,28,40,28,40,28,0,40,28,40,40,40,28,28,28,40,28,40,40,40,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,56,56,40,40,28,40,28,40,28,40,28,40,28,0,0,0,39,25,27,39,25,27,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,39,39,39,39,25,27,39,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,39,39,39,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,0,0,0,0,49,48,49,48,49,48,49,48,49,48,49,48,49,48,49,48,48,49,48,49,48,49,48,49,48,48,49,48,49,49,49,48,48,48,49,49,48,49,48,49,48,49,48,49,48,49,48,49,48,49,48,48,48,48,49,48,49,48,49,48,49,48,49,48,49,48,49,48,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,47,47,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,66,67,68,69,70,71,72,73,74,75,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,66,68,76,80,84,85,47,87,47,80,81,82,47,75,47,67,68,69,71,73,76,77,79,83,84,85,86,47,87,47,70,72,76,78,79,80,81,82,83,84,85,86,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,86,47,87,47,87,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88],"f":"```````````````{{{b{c}}}{{b{d}}}{}}{{{b{fc}}}{{b{fd}}}{}}{{{b{c}}}{{b{h}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}``{j{{b{c}}}{}}{j{{b{fc}}}{}}{jl}{{{b{n}}{b{fA`}}}Ab}0{cc{}}``{{}j}{ce{}{}}{{{Ad{c}}}{{Ad{d}}}{}}{{{Af{c}}}{{Af{d}}}{}}{{{Ah{c}}}{{Ah{d}}}{}}{{{b{c}}}Aj{}}{c{{Al{e}}}{}{}}0{{{b{c}}}An{}}6```{{j{B`{j}}}{{Bb{c}}}Bd}`````````````{{{b{c}}Bf}l{}}000{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}{{{b{f{Bl{c}}}}Bj{b{c}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjcBj}{{Al{ln}}}Bd}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{c}}}{{b{d}}}{}}000{{{b{fc}}}{{b{fd}}}{}}000{{{b{f{Bl{c}}}}C`{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}C`{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}C`{b{Ch}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{c}}}{{b{e}}}{}{}}000{{{b{fc}}}{{b{fe}}}{}{}}000{{{b{Bh}}{b{{Cj{c}}}}}{{Al{ln}}}Cl}{{{b{{Bl{c}}}}{b{{Cj{c}}}}}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}{b{{Cj{Bj}}}}}{{Al{ln}}}Bn}{{{b{C`}}}C`}{{{b{Cn}}}Cn}{{{b{D`}}}D`}{{{b{{Bl{c}}}}}{{Bl{c}}}{BnDb}}{{{b{c}}{b{fe}}}l{}{}}000{{{b{Dd}}}{{Al{{Bb{{Df{c}}}}n}}}Bn}{{{b{{Bl{c}}}}}{{Al{{Bb{{Df{c}}}}n}}}Bd}{{{b{Dd}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}}{{Al{{Df{c}}n}}}Bd}{{{b{Dd}}{b{c}}{b{c}}{b{c}}{b{{Cj{c}}}}{b{{Cj{c}}}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}{b{c}}{b{c}}{b{c}}{b{{Cj{c}}}}{b{{Cj{c}}}}}{{Al{{Df{c}}n}}}Bd}{{{b{Dd}}c{b{{Cj{c}}}}}{{Al{{Dh{{Bb{c}}{Df{c}}{Df{c}}}}n}}}Bn}{{{b{{Bl{c}}}}c{b{{Cj{c}}}}}{{Al{{Dh{{Bb{c}}{Df{c}}{Df{c}}}}n}}}Bd}{{{b{Dd}}c}{{Al{{Bb{c}}n}}}Bn}{{{b{{Bl{c}}}}c}{{Al{{Bb{c}}n}}}Bd}{{{b{Dd}}{b{c}}{b{c}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}{b{c}}{b{c}}}{{Al{{Df{c}}n}}}Bd}989898;:98;:{{{b{f{Bl{c}}}}C`BjBj}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}C`{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{fBh}}Dl}{{Al{C`n}}}}{{{b{f{Bl{c}}}}{Dn{e}}}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{E`{e}}}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}e}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{E`{c}}}{{Al{Chn}}}Bd}{{{b{fBh}}c}{{Al{Bjn}}}Cl}{{{b{f{Bl{c}}}}c}{{Al{Bjn}}}Bn}54326543210{{{b{f{Bl{c}}}}{b{{Cj{{Dh{BjBjBj}}}}}}{b{{Cj{{Dh{BjBj}}}}}}}{{Al{ln}}}Bd}21{{}{{Bl{c}}}Bn}{j{{b{c}}}{}}000{j{{b{fc}}}{}}000{jl}000{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}e}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}e{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}321032{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}e}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}e}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Cb{e}}}}}{{Al{{Dn{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}e}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}e}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Cf{e}}}}}{{Al{{E`{e}}n}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Dj{e}}}}}{{Al{en}}}Bd{{Cd{c}}}}{{{b{fBh}}Bj}{{Al{ln}}}}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{fBh}}Bjc}{{Al{ln}}}Cl}{{{b{f{Bl{c}}}}Bjc}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{fBh}}BjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}{BdBd}}{{{b{f{Bl{c}}}}Bjc}{{Al{ln}}}{BdBd}}10{{{b{f{Bl{c}}}}Bjj}{{Al{ln}}}Bd}2121{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{ln}}}Bd}5{{{b{Cn}}{b{Cn}}}Dl}{{{b{D`}}{b{D`}}}Dl}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{Dd}}}{{Al{jn}}}}{{{b{{Bl{c}}}}}{{Al{jn}}}Bd}{{{b{Bh}}}C`}{{{b{f{Bl{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}D`}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}Bj{b{{Eb{e}}}}}{{Al{Chn}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{C`}}{b{fA`}}}Ab}{{{b{Cn}}{b{fA`}}}Ab}{{{b{D`}}{b{fA`}}}Ab}{{{b{{Bl{c}}}}{b{fA`}}}Ab{BnEh}}{C`Bj}{cc{}}000{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}{b{{Ej{c}}}}c}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}Bj{b{Ch}}}{{Al{Chn}}}Bd}{{{b{Cn}}{b{fc}}}lEl}{{{b{D`}}{b{fc}}}lEl}{{}j}000{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{Ad{En}}}{{Al{ln}}}Bn}{ce{}{}}000{{{Ad{c}}}{{Ad{d}}}{}}000{{{Af{c}}}{{Af{d}}}{}}00{{{Ah{c}}}{{Ah{d}}}{}}000{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{C`n}}}{BdBd}}{{{b{f{Bl{c}}}}Bjc}{{Al{C`n}}}{BdBd}}10{{{b{f{Bl{c}}}}Bjj}{{Al{C`n}}}Bd}2121{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}Bj}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}C`C`}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{C`}}}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}C`}{{Al{C`n}}}Bd}2{{{b{f{Bl{c}}}}C`C`}{{Al{ln}}}Bd}{{{b{{Bl{c}}}}{b{{Bl{c}}}}}{{Al{{Bl{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{F`{c}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{Fb{c}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{{F`{c}}}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}21{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}j}{{Al{Chn}}}Bd}{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}>={{{b{f{Bl{c}}}}Bj{b{c}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjcBj}{{Al{ln}}}Bd}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}}ChBd}{{}{{Bl{c}}}Bn}{j{{Bl{c}}}Bn}{{{b{f{Bl{c}}}}{b{{Cj{{F`{c}}}}}}{b{{Cj{{Fb{c}}}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{F`{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}}{{Al{{F`{c}}n}}}Bd}0{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bd}{{{b{Bh}}}j}{{{b{{Bl{c}}}}}jBn}10{{{b{{Bl{c}}}}}{{Al{jn}}}Bd}2121{{{b{Bh}}}Bj}{{{b{{Bl{c}}}}}BjBn}{{{b{fBh}}j}l}{{{b{f{Bl{c}}}}j}lBn}{{{b{{Bl{c}}}}{b{Ch}}}{{Al{{E`{c}}n}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}Bj}{{Al{Bjn}}}Bd}{{{b{Bh}}}{{Al{{Bb{c}}n}}}Cl}{{{b{{Bl{c}}}}}{{Al{{Bb{c}}n}}}Bn}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}{b{{Ej{c}}}}cc}{{Al{ln}}}Bd}{{{b{{Bl{c}}}}}{{Al{jn}}}Bn}0{{{b{fBh}}Bj}{{Al{ln}}}}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{Dd}}}{{Al{jn}}}}>{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}{b{{Cj{Bj}}}}}{{Al{Bjn}}}Bd}{{{b{Bh}}}Dl}{{{b{{Bl{c}}}}}DlBn}{{{b{c}}}e{}{}}000{{{b{Bh}}}C`}{{{b{f{Bl{c}}}}Bjj}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjBjj}{{Al{ln}}}Bd}{c{{Al{e}}}{}{}}0000000{{{b{c}}}An{}}000{{{b{f{Bl{c}}}}Bjj}{{Al{{Bb{C`}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{C`}}}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}Bj{b{Ch}}}{{Al{Chn}}}Bd}{ce{}{}}000{{{b{Bh}}Bj}{{Al{cn}}}Cl}{{{b{{Bl{c}}}}Bj}{{Al{cn}}}Bn}{{{b{f{Bl{c}}}}Bj}{{b{fc}}}Bn}{{{b{Bh}}}Bj}{{{b{{Bl{c}}}}}BjBn}``````{{{b{c}}Bf}l{}}{{{b{c}}}{{b{d}}}{}}{{{b{fc}}}{{b{fd}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Dj{c}}}}}{{Dj{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}{j{{b{c}}}{}}{j{{b{fc}}}{}}{jl}`{{{b{{Dj{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}{e{{Bb{c}}}Bd{{Cd{c}}}}{{}j}{ce{}{}}{{{Ad{c}}}{{Ad{d}}}{}}{{{Af{c}}}{{Af{d}}}{}}{{{Ah{c}}}{{Ah{d}}}{}}{{{b{{Dj{c}}}}}{{Bb{Bj}}}Bd}{{{b{Fd}}}{{Bb{c}}}Bd}`{{{b{{Cj{c}}}}}{{Al{en}}}Bd{{Cd{c}}}}{{{b{c}}}e{}{}}{c{{Al{e}}}{}{}}0{{{b{c}}}An{}}`9```````{{{b{c}}Bf}l{}}0{{{b{c}}}{{b{d}}}{}}0{{{b{fc}}}{{b{fd}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{fc}}}{{b{fe}}}{}{}}0{{{b{{E`{c}}}}}{{E`{c}}}{DbBd}}{{{b{Ch}}}Ch}{{{b{c}}{b{fe}}}l{}{}}0{{}{{E`{c}}}Bd}{j{{b{c}}}{}}0{j{{b{fc}}}{}}0{jl}0`{{{b{{E`{c}}}}{b{{E`{c}}}}}Dl{FfBd}}{{{b{Ch}}{b{Ch}}}Dl}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{{E`{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{Ch}}{b{fA`}}}Ab}{{{Fh{e}}}{{E`{c}}}{BdFj}{{Fl{}{{Ed{c}}}}}}{{{Eb{e}}}{{E`{c}}}Bd{{Ef{}{{Ed{c}}}}}}{{{Fn{e}}}{{E`{c}}}Bd{{Ef{}{{Ed{c}}}}}}{cc{}}0{{{b{{E`{c}}}}}cBd}{{{b{Ch}}}Bj}10{{}j}0{ce{}{}}0{{{Ad{c}}}{{Ad{d}}}{}}0{{{Af{c}}}{{Af{d}}}{}}0{{{Ah{c}}}{{Ah{d}}}{}}0{{{b{{E`{c}}}}}{{E`{c}}}Bd}{{{b{fG`}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}}{{Al{Chn}}}}{{{b{fG`}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}j}{{Al{Chn}}}}{{{b{{E`{e}}}}}{{Bb{c}}}Bd{{Cd{c}}}}{{{b{c}}}e{}{}}0{c{{Al{e}}}{}{}}000{{{b{c}}}An{}}0::```{{{b{c}}Bf}l{}}00{{{b{c}}}{{b{d}}}{}}00{{{b{fc}}}{{b{fd}}}{}}00{e{{Al{lGb}}}Bd{{Gf{}{{Gd{{b{{Dn{c}}}}}}}}Gh}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{fc}}}{{b{fe}}}{}{}}00{{{b{{Dn{c}}}}}{{Al{lGb}}}Bd}{{{b{{Dn{c}}}}}{{Dn{c}}}{DbBd}}{{{b{{Cb{c}}}}}{{Cb{c}}}{DbBd}}{{{b{{Cf{c}}}}}{{Cf{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}00{{}{{Dn{c}}}Bd}{j{{b{c}}}{}}00{j{{b{fc}}}{}}00{{cGjGl}{{Al{{Dn{e}}Gb}}}GnBd}{jl}00{{{b{{Dn{c}}}}{b{{Dn{c}}}}}Dl{FfBd}}{{{b{c}}{b{e}}}Dl{}{}}00{{{b{{Dn{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{Cb{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{Cf{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}{{{Fh{e}}}{{Dn{c}}}Bd{{Fl{}{{Ed{c}}}}}}11{{}j}00{ce{}{}}00{{{Ad{c}}}{{Ad{d}}}{}}00{{{Af{c}}}{{Af{d}}}{}}00{{{Ah{c}}}{{Ah{d}}}{}}00{{{b{{Dn{e}}}}}{{Bb{c}}}Bd{{Cd{c}}}}{{{b{{Dn{c}}}}eGj}{{Al{lGb}}}BdH`}{{{b{{Dn{c}}}}Gj}jBd}{{{b{c}}}e{}{}}00{c{{Al{e}}}{}{}}00000{{{b{c}}}An{}}00999{{{Bl{c}}{Bl{c}}}{{Al{ln}}}Bd}```{{{b{c}}Bf}l{}}0{{{b{c}}}{{b{d}}}{}}0{{{b{fc}}}{{b{fd}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{fc}}}{{b{fe}}}{}{}}0{{{b{{Fb{c}}}}}{{Fb{c}}}{DbBd}}{{{b{{F`{c}}}}}{{F`{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}0{{{b{{Fb{c}}}}}{{Dh{cc}}}Bd}{{{b{{F`{c}}}}}{{Dh{BjBj}}}Bd}{{{b{{F`{c}}}}{b{f{Bl{c}}}}}{{Al{Bjn}}}Bd}{{}{{Fb{c}}}{HbBd}}{{}{{F`{c}}}{HbBd}}{j{{b{c}}}{}}0{j{{b{fc}}}{}}0{jl}0{{{b{{F`{c}}}}{b{f{Bl{c}}}}{b{{F`{c}}}}}{{Al{ln}}}Bd}{{{b{{Fb{c}}}}{b{{Fb{c}}}}}Dl{FfBd}}{{{b{{F`{c}}}}{b{{F`{c}}}}}Dl{FfBd}}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{{Fb{c}}}}}cBd}{{{b{{Fb{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{F`{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}0{{}j}0{ce{}{}}0{{{Ad{c}}}{{Ad{d}}}{}}0{{{Af{c}}}{{Af{d}}}{}}0{{{Ah{c}}}{{Ah{d}}}{}}0{{{b{c}}j{B`{c}}}{{Al{{Fb{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{c}}j{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Fb{c}}}}j{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}Bjj{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{{Bl{c}}}}j{B`{c}}}{{F`{c}}}Bd}{{{b{{Fb{c}}}}}jBd}{{{b{{F`{c}}}}}jBd}{{{b{c}}}e{}{}}0{c{{Al{e}}}{}{}}000{{{b{{Fb{c}}}}}cBd}{{{b{{F`{c}}}}}cBd}{{{b{c}}}An{}}0??{{{b{{F`{c}}}}{b{{Bl{c}}}}}{{Al{cn}}}Bd}{{{b{{F`{c}}}}{b{{Bl{c}}}}}{{Al{{Fb{c}}n}}}Bd}9````````````````````````{{{b{c}}Bf}l{}}0000000000000000000000{{{b{c}}}{{b{d}}}{}}0000000000000000000000{{{b{fc}}}{{b{fd}}}{}}0000000000000000000000{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000{{{b{fc}}}{{b{fe}}}{}{}}0000000000000000000000{{{b{{Hd{c}}}}}{{Hd{c}}}{DbCl}}{{{b{Hf}}}Hf}{{{b{{Hh{c}}}}}{{Hh{c}}}{DbCl}}{{{b{Hj}}}Hj}{{{b{Hl}}}Hl}{{{b{{Hn{c}}}}}{{Hn{c}}}Db}{{{b{I`}}}I`}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{If}}}If}{{{b{{Ih{c}}}}}{{Ih{c}}}{DbCl}}{{{b{{Ij{c}}}}}{{Ij{c}}}{DbCl}}{{{b{{Il{c}}}}}{{Il{c}}}{DbCl}}{{{b{In}}}In}{{{b{{J`{c}}}}}{{J`{c}}}Ef}{{{b{{Jb{c}}}}}{{Jb{c}}}Ef}{{{b{{Jd{c}}}}}{{Jd{c}}}Ef}{{{b{{Jf{c}}}}}{{Jf{c}}}{DbBd}}{{{b{{Jh{c}}}}}{{Jh{c}}}{DbBd}}{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{{Jn{c}}}}}{{Jn{c}}}{DbCl}}{{{b{K`}}}K`}{{{b{c}}{b{fe}}}l{}{}}0000000000000000000000{j{{b{c}}}{}}0000000000000000000000{j{{b{fc}}}{}}0000000000000000000000{{{Ad{En}}}{{Al{{Ad{e}}{Ad{En}}}}}{dCl}{{En{c}}}}{{{b{fEn}}}{{B`{{b{fe}}}}}{dCl}{{En{c}}}}{{{Ah{En}}}{{Al{{Ah{e}}{Ah{En}}}}}{dCl}{{En{c}}}}{{{b{En}}}{{B`{{b{e}}}}}{dCl}{{En{c}}}}{jl}0000000000000000000000{{{b{En}}{b{fA`}}}Ab}{{{b{{Hd{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{Hf}}{b{fA`}}}Ab}{{{b{{Hh{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{Hj}}{b{fA`}}}Ab}{{{b{Hl}}{b{fA`}}}Ab}{{{b{{Hn{c}}}}{b{fA`}}}AbEh}{{{b{I`}}{b{fA`}}}Ab}{{{b{Ib}}{b{fA`}}}Ab}{{{b{Id}}{b{fA`}}}Ab}{{{b{If}}{b{fA`}}}Ab}{{{b{{Jn{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{K`}}{b{fA`}}}Ab}{cc{}}0000000000000000000000{{}j}0000000000000000000000{ce{}{}}0000000000000000000000{{{Ad{c}}}{{Ad{d}}}{}}0000000000000000000000{{{Af{c}}}{{Af{d}}}{}}0000000000000000000000{{{Ah{c}}}{{Ah{d}}}{}}0000000000000000000000{{{b{En}}}Dl}{{{b{En}}}{{b{Kb}}}}{{{b{{Hd{c}}}}}{{b{Kb}}}Cl}{{{b{Hf}}}{{b{Kb}}}}{{{b{{Hh{c}}}}}{{b{Kb}}}Cl}{{{b{Hj}}}{{b{Kb}}}}{{{b{Hl}}}{{b{Kb}}}}{{{b{{Hn{c}}}}}{{b{Kb}}}Cl}{{{b{I`}}}{{b{Kb}}}}{{{b{Ib}}}{{b{Kb}}}}{{{b{Id}}}{{b{Kb}}}}{{{b{If}}}{{b{Kb}}}}{{{b{{Ih{c}}}}}{{b{Kb}}}Cl}{{{b{{Ij{c}}}}}{{b{Kb}}}Cl}{{{b{{Il{c}}}}}{{b{Kb}}}Cl}{{{b{In}}}{{b{Kb}}}}{{{b{{J`{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jb{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jf{c}}}}}{{b{Kb}}}Bd}{{{b{{Jh{c}}}}}{{b{Kb}}}Bd}{{{b{Jj}}}{{b{Kb}}}}{{{b{Jl}}}{{b{Kb}}}}{{{b{{Jn{c}}}}}{{b{Kb}}}Cl}{{{b{K`}}}{{b{Kb}}}}{{{b{En}}}cCl}{{{b{{Hd{c}}}}}cCl}{{{b{{Hh{c}}}}}cCl}{{{b{{Ih{c}}}}}cCl}{{{b{{J`{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jh{c}}}}}cBd}{{{b{Jj}}}cCl}6{{{b{{Jn{c}}}}}cCl}73{{{b{{Jb{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{En}}}{{Ej{c}}}Cl}{{{b{If}}}{{Ej{c}}}Cl}1{{{b{Hf}}}{{Ej{c}}}Cl}{{{b{{Hh{c}}}}}{{Ej{c}}}Cl}{{{b{Hj}}}{{Ej{c}}}Cl}{{{b{{Hn{c}}}}}{{Ej{c}}}Cl}{{{b{Ib}}}{{Ej{c}}}Cl}{{{b{{Ih{c}}}}}{{Ej{c}}}Cl}{{{b{{Ij{c}}}}}{{Ej{c}}}Cl}{{{b{In}}}{{Ej{c}}}Cl}{{{b{{Jf{c}}}}}{{Ej{c}}}Bd}{{{b{{Jh{c}}}}}{{Ej{c}}}Bd}{{{b{Jj}}}{{Ej{c}}}Cl}{{{b{Jl}}}{{Ej{c}}}Cl}{{{b{En}}}cCl}{{{b{{Jn{c}}}}}cCl}?{{{b{Hl}}}{{Ej{c}}}Cl}{{{b{I`}}}{{Ej{c}}}Cl}:{{{b{{Il{c}}}}}{{Ej{c}}}Cl}9{{{b{{J`{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jb{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}};:987{{{b{{Hd{c}}}}}cCl}{{{b{Hf}}}cCl}{{{b{{Hh{c}}}}}cCl}{{{b{Hj}}}cCl}{{{b{Hl}}}cCl}{{{b{{Hn{c}}}}}cCl}{{{b{I`}}}cCl}{{{b{Ib}}}cCl}{{{b{Id}}}cCl}{{{b{If}}}cCl}{{{b{{Ih{c}}}}}cCl}{{{b{{Ij{c}}}}}cCl}{{{b{{Il{c}}}}}cCl}{{{b{In}}}cCl}{{{b{{Jb{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jf{c}}}}}cBd}{{{b{{Jh{c}}}}}cBd}{{{b{Jl}}}cCl}{{{b{En}}}cCl}{{{b{{Jn{c}}}}}cCl}10{{{b{c}}}e{}{}}0000000000000000000000{c{{Al{e}}}{}{}}000000000000000000000000000000000000000000000{{{b{c}}}An{}}0000000000000000000000{ce{}{}}0000000000000000000000","D":"BMl","p":[[1,"reference"],[10,"Any",1238],[0,"mut"],[10,"Error",1239],[1,"usize"],[1,"unit"],[6,"CircuitError",0],[5,"Formatter",1240],[8,"Result",1240],[5,"Box",1241],[5,"Arc",1242],[5,"Rc",1243],[5,"String",1244],[6,"Result",1245],[5,"TypeId",1238],[6,"Option",1246],[5,"Vec",1247],[10,"PrimeField",1248],[5,"Private",1249],[10,"Circuit",44],[8,"Variable",44],[5,"PlonkCircuit",44],[10,"FftField",1250],[5,"BoolVar",44],[5,"EmulatedSWPointVariable",466,1251],[10,"EmulationConfig",359,1252],[5,"EmulatedTEPointVariable",466,1253],[5,"PointVariable",394],[1,"slice"],[10,"Field",1254],[6,"PlonkType",44],[6,"MergeableCircuitType",44],[10,"Clone",1255],[10,"Arithmetization",44],[5,"DensePolynomial",1256],[1,"tuple"],[5,"EmulatedVariable",359,1252],[1,"bool"],[5,"SWPoint",466,1251],[5,"TEPoint",394],[5,"Affine",1257],[17,"BaseField"],[10,"TECurveConfig",1258],[10,"Debug",1240],[1,"array"],[10,"Hasher",1259],[10,"Gate",622],[5,"FpElemVar",549],[5,"FpElem",549],[10,"SerializableEmulatedStruct",359,1252],[10,"PartialEq",1260],[5,"Affine",1261],[10,"SWToTEConParam",394,1262],[10,"SWCurveConfig",1263],[5,"Projective",1264],[10,"MultiScalarMultiplicationCircuit",394,1265],[6,"SerializationError",1266],[17,"Item"],[10,"Iterator",1267],[10,"Send",1268],[6,"Compress",1269],[6,"Validate",1269],[10,"Read",1270],[10,"Write",1270],[10,"Default",1271],[5,"ConstantGate",622,1272],[5,"AdditionGate",622,1272],[5,"ConstantAdditionGate",622,1272],[5,"SubtractionGate",622,1272],[5,"MultiplicationGate",622,1272],[5,"ConstantMultiplicationGate",622,1272],[5,"BoolGate",622,1272],[5,"EqualityGate",622,1272],[5,"IoGate",622,1272],[5,"FifthRootGate",622,1272],[5,"QuadPolyGate",622,1272],[5,"LinCombGate",622,1272],[5,"MulAddGate",622,1272],[5,"CondSelectGate",622,1272],[5,"EdwardsCurveEquationGate",622,1273],[5,"CurvePointXAdditionGate",622,1273],[5,"CurvePointYAdditionGate",622,1273],[5,"QuaternaryPointSelectXGate",622,1273],[5,"QuaternaryPointSelectYGate",622,1273],[5,"LogicOrGate",622,1274],[5,"LogicOrOutputGate",622,1274],[5,"LookupGate",622,1275],[5,"PaddingGate",622],[1,"str"]],"r":[[360,1252],[361,1252],[363,1252],[378,1252],[387,1252],[395,1265],[399,1262],[466,1251],[467,1253],[468,1251],[622,1272],[623,1272],[624,1272],[625,1272],[626,1272],[627,1272],[628,1273],[629,1273],[630,1273],[631,1272],[632,1272],[634,1272],[635,1272],[636,1274],[637,1274],[638,1275],[639,1272],[640,1272],[642,1272],[643,1273],[644,1273],[645,1272]],"b":[[25,"impl-Display-for-CircuitError"],[26,"impl-Debug-for-CircuitError"],[433,"impl-From%3CAffine%3CP%3E%3E-for-TEPoint%3CF%3E"],[434,"impl-From%3CAffine%3CP%3E%3E-for-TEPoint%3CF%3E"],[435,"impl-From%3CProjective%3CP%3E%3E-for-TEPoint%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAGgDWQAQAAQAFwAEAB8AAAAhAAcAOgADAD8AAABDAAAARQAHAFAABwBZAAAAXAAHAGUAAABnAAAAaQAAAGsAAABtAAAAbwAAAHEAAABzAAAAdQAAAHcAAAB5AAAAewAAAIQAAACPAAAAkgANALMAAAC1AAAAugAAAMgABwDRAAAA1gAEAOEABQDsAAoAFwEBABoBAAAgAQAAKgEAACwBAAAvAQAAMQEAADUBAAA6AQAAPwEAAEEBAABDAQAARQEAAEgBBABQAQsAXwEDAGQBAABuAQkAeQEAAHwBAAB+AQIAhQEDAIoBAACSARQAqAEMALsBAQC/AQUAyAEKANYBKAAAAgAAAwICAAkCGgAoAg0AOQIHAEICBwBLAgEATwIBAFMCBQBgAgUAaAIDAIcCzgBaAyMAlQMWAMMDRAAKBBYAIgQFACkEAAArBAIALwQAADEECwA+BAAAQAQLAE0EEgBhBAAAYwRzAA=="}],\ -["jf_rescue",{"t":"TTSTTTTFPFSGFKFSNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["A","A_INV","CRHF_RATE","INIT_VEC_LE","KEY_INJECTION_LE","MDS_LE","PERMUTATION_ROUND_KEYS","PRP","ParameterError","Permutation","ROUNDS","RescueError","RescueMatrix","RescueParameter","RescueVector","STATE_SIZE","as_error_source","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","commitment","crhf","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","elems","eq","eq","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init_vec_ref","into","into","into","into","into","is_empty","key_injection_vec_ref","key_schedule","len","linear","mds_matrix_ref","mds_matrix_ref","non_linear","prf","prp","prp_with_round_keys","round_keys_ref","sponge","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vec","vzip","vzip","vzip","vzip","vzip","zero","FixedLengthRescueCommitment","borrow","borrow_mut","clone","clone_into","commit","default","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","init","into","to_owned","try_from","try_into","type_id","verify","vzip","FixedLengthRescueCRHF","RescueCRHF","VariableLengthRescueCRHF","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","evaluate","evaluate","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","sponge_no_padding","sponge_with_bit_padding","sponge_with_zero_padding","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","RescuePRF","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","evaluate","fmt","from","init","into","to_owned","try_from","try_into","type_id","vzip","RescueSponge","absorb","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","fmt","fork","from","from_state","init","into","into_state","new","squeeze_bits","squeeze_bytes","squeeze_field_elements","squeeze_field_elements_with_sizes","squeeze_native_field_elements","squeeze_native_field_elements_with_sizes","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"jf_rescue"],[129,"jf_rescue::commitment"],[152,"jf_rescue::crhf"],[208,"jf_rescue::prf"],[226,"jf_rescue::sponge"],[255,"core::error"],[256,"core::clone"],[257,"core::default"],[258,"alloc::vec"],[259,"ark_ff::fields::prime"],[260,"core::cmp"],[261,"core::fmt"],[262,"core::marker"],[263,"alloc::string"],[264,"core::result"],[265,"core::any"],[266,"core::option"],[267,"core::borrow"],[268,"ark_crypto_primitives::sponge::absorb"],[269,"ark_crypto_primitives::sponge"]],"i":[11,11,0,11,11,11,11,0,15,0,0,0,0,0,0,0,15,15,4,6,7,8,15,4,6,7,8,4,6,7,8,4,6,7,8,0,0,4,7,8,15,4,6,7,8,15,4,6,7,8,15,4,6,7,8,4,15,4,15,15,4,4,8,15,15,4,6,7,8,15,4,4,4,6,6,7,8,8,15,4,6,7,8,7,15,4,6,7,8,6,7,7,6,4,7,8,4,0,7,7,8,0,4,6,7,8,15,15,4,6,7,8,15,4,6,7,8,15,4,6,7,8,6,15,4,6,7,8,4,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,30,30,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34],"f":"````````````````{{{b{c}}}{{b{d}}}{}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{fc}}}{{b{fe}}}{}{}}0000{{{b{{h{c}}}}}{{h{c}}}j}{{{b{{l{c}}}}}{{l{c}}}j}{{{b{{n{c}}}}}{{n{c}}}j}{{{b{{A`{c}}}}}{{A`{c}}}j}{{{b{c}}{b{fe}}}Ab{}{}}000``{{}{{h{c}}}Ad}{{}{{n{c}}}Af}{{}{{A`{c}}}Af}{Ah{{b{c}}}{}}0000{Ah{{b{fc}}}{}}0000{AhAb}0000{{{b{{h{c}}}}}{{Aj{c}}}Al}{{{b{An}}{b{An}}}B`}{{{b{{h{c}}}}{b{{h{c}}}}}B`Bb}{{{b{c}}{b{e}}}B`{}{}}000{{{b{{A`{c}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{An}}{b{fBd}}}Bf}0{{{b{{h{c}}}}{b{fBd}}}BfBh}{{{b{{l{c}}}}{b{fBd}}}BfBh}{{{b{{n{c}}}}{b{fBd}}}BfBh}{{{b{{A`{c}}}}{b{fBd}}}BfBh}{cc{}}0{{{b{{Bj{c}}}}}{{h{c}}}Bl}{{{b{{Bn{c}}}}}{{h{c}}}Bl}{{{b{{Bj{{h{c}}}}}}}{{l{c}}}Al}333{{{n{c}}}{{A`{c}}}Af}{{}Ah}0000{{{b{{n{c}}}}}{{b{{h{c}}}}}Af}{ce{}{}}0000{{{b{{l{c}}}}}B`Al}{{{b{{n{c}}}}}{{b{{Bn{{h{c}}}}}}}Af}{{{b{{n{c}}}}{b{{h{c}}}}}{{Aj{{h{c}}}}}Af}{{{b{{l{c}}}}}AhAl}{{{b{f{h{c}}}}{b{{l{c}}}}{b{{h{c}}}}}AbAl}{{{b{{n{c}}}}}{{b{{l{c}}}}}Af}{{{b{{A`{c}}}}}{{b{{l{c}}}}}Af}{{{b{f{h{c}}}}{b{{l{c}}}}{b{{h{c}}}}}AbAf}`{{{b{{n{c}}}}{b{{h{c}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{{n{c}}}}{b{{Bn{{h{c}}}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{{A`{c}}}}}{{b{{Bn{{h{c}}}}}}}Af}`{{{b{c}}}e{}{}}000{{{b{c}}}C`{}}{c{{Cb{e}}}{}{}}000000000{{{b{c}}}Cd{}}0000{{{b{{l{c}}}}Ah}{{h{c}}}Al}{ce{}{}}0000{{}{{h{c}}}Al}`{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Cf{c}}}}}{{Cf{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}{{e{Ch{{b{g}}}}}{{Cb{ik}}}{}{{Cj{c}}}{}{}{}}{{}{{Cf{c}}}{AdAf}}{Ah{{b{c}}}{}}{Ah{{b{fc}}}{}}{AhAb}{{{b{{Cf{c}}}}{b{{Cf{c}}}}}B`{BbAf}}{{{b{c}}{b{e}}}B`{}{}}0{{{b{{Cf{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}{{}Ah}?{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Cd{}}{{e{Ch{{b{g}}}}{b{i}}}{{Cb{{Cb{AbAb}}k}}}{}{{Cj{c}}}{}{}{}}{ce{}{}}```{{{b{c}}}{{b{e}}}{}{}}00{{{b{fc}}}{{b{fe}}}{}{}}00{{{b{{Cl{c}}}}}{{Cl{c}}}{jAf}}{{{b{{Cn{c}}}}}{{Cn{c}}}{jAf}}{{{b{{D`{c}}}}}{{D`{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}00{Ah{{b{c}}}{}}00{Ah{{b{fc}}}{}}00{AhAb}00{e{{Cb{gi}}}{}{{Cj{c}}}{}{}}0{{{b{{Cl{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{Cn{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{D`{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}00{{}Ah}00???{{{b{{Bn{c}}}}Ah}{{Cb{{Aj{c}}An}}}Af}{{{b{{Bn{c}}}}Ah}{{Aj{c}}}Af}0{{{b{c}}}e{}{}}00{c{{Cb{e}}}{}{}}00000{{{b{c}}}Cd{}}00{ce{}{}}00`{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Db{c}}}}}{{Db{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}{Ah{{b{c}}}{}}{Ah{{b{fc}}}{}}{AhAb}{{ei}{{Cb{km}}}{}{{Cj{c}}}{}{{Cj{g}}}{}{}}{{{b{{Db{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}{{}Ah};>==<;`{{{b{f{Dd{c}}}}{b{e}}}Ab{AfAl}Df};:{{{b{{Dd{c}}}}}{{Dd{c}}}{jAf}}9{{}{{Dd{c}}}{AdAf}}987{{{b{{Dd{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{Dd{c}}}}{b{{Bn{Dh}}}}}{{Dd{c}}}{AfAl}}6{{c{b{e}}}{{Dd{g}}}{}{}Af}6{ce{}{}}{{{Dd{c}}}eAf{}}{{{b{c}}}{{Dd{e}}}{}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{B`}}}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{Dh}}}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{e}}}{AfAl}Al}{{{b{f{Dd{c}}}}{b{{Bn{Dj}}}}}{{Aj{e}}}{AfAl}Al}{{{b{f{Dd{c}}}}Ah}{{Aj{c}}}Af}{{{b{f{Dd{c}}}}{b{{Bn{Dj}}}}}{{Aj{c}}}Af}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Cd{}};","D":"In","p":[[1,"reference"],[10,"Error",255],[0,"mut"],[5,"RescueVector",0],[10,"Clone",256],[5,"RescueMatrix",0],[5,"PRP",0],[5,"Permutation",0],[1,"unit"],[10,"Default",257],[10,"RescueParameter",0],[1,"usize"],[5,"Vec",258],[10,"PrimeField",259],[6,"RescueError",0],[1,"bool"],[10,"PartialEq",260],[5,"Formatter",261],[8,"Result",261],[10,"Debug",261],[1,"array"],[10,"Copy",262],[1,"slice"],[5,"String",263],[6,"Result",264],[5,"TypeId",265],[5,"FixedLengthRescueCommitment",129],[6,"Option",266],[10,"Borrow",267],[5,"RescueCRHF",152],[5,"FixedLengthRescueCRHF",152],[5,"VariableLengthRescueCRHF",152],[5,"RescuePRF",208],[5,"RescueSponge",226],[10,"Absorb",268],[1,"u8"],[6,"FieldElementSize",269]],"r":[],"b":[[63,"impl-Display-for-RescueError"],[64,"impl-Debug-for-RescueError"],[71,"impl-From%3C%26%5BF;+STATE_SIZE%5D%3E-for-RescueVector%3CF%3E"],[72,"impl-From%3C%26%5BF%5D%3E-for-RescueVector%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALAAFgARABIAJgARADkABQBAAAUASAACAE4ABQBnABMAfAAEAIMADACRAAAAkwAFAJwAFACzAAIAuQACAMIADgDSAAgA3AAAAN4ABADlAAgA8AABAPMAAAD7AAQA"}],\ -["jf_signature",{"t":"KTRPRRGKRPRMMNNCNNNNNNNMMMMNNNNMNSSSSSSSSCSSSSSSS","n":["AggregateableSignatureSchemes","CS_ID","MessageUnit","ParameterError","PublicParameter","Signature","SignatureError","SignatureScheme","SigningKey","VerificationError","VerificationKey","aggregate","aggregate_verify","borrow","borrow_mut","constants","eq","equivalent","fmt","fmt","from","from","into","key_gen","multi_sig_verify","param_gen","sign","to_string","try_from","try_into","type_id","verify","vzip","BLS_SIG_COMPRESSED_PK_SIZE","BLS_SIG_COMPRESSED_SIGNATURE_SIZE","BLS_SIG_PK_SIZE","BLS_SIG_SIGNATURE_SIZE","BLS_SIG_SK_SIZE","CS_ID_BLS_BN254","CS_ID_BLS_MIN_SIG","CS_ID_SCHNORR","tag","BLS_SIG","BLS_SIGNING_KEY","BLS_VER_KEY","SCHNORR_KEY_PAIR","SCHNORR_SIG","SCHNORR_SIGNING_KEY","SCHNORR_VER_KEY"],"q":[[0,"jf_signature"],[33,"jf_signature::constants"],[42,"jf_signature::constants::tag"],[49,"core::result"],[50,"core::convert"],[51,"core::fmt"],[52,"blst"],[53,"rand_core"],[54,"core::option"],[55,"alloc::string"],[56,"core::any"]],"i":[0,18,18,3,18,18,0,0,18,3,18,19,19,3,3,0,3,3,3,3,3,3,3,18,19,18,18,3,3,3,3,18,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":"```````````{{{b{c}}{b{{d{e}}}}{b{{d{g}}}}}{{h{gf}}}{}{}{}}{{{b{c}}{b{{d{e}}}}{b{{d{i}}}}{b{k}}}{{h{jf}}}{}{}{}{{l{{d{g}}}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}`{{{b{f}}{b{f}}}A`}{{{b{c}}{b{e}}}A`{}{}}{{{b{f}}{b{nAb}}}Ad}0{cc{}}{Aff}{ce{}{}}{{{b{c}}{b{ne}}}{{h{{Ah{gi}}f}}}{}{AjAl}{}{}}{{{b{c}}{b{{d{e}}}}{b{{d{g}}}}{b{i}}}{{h{jf}}}{}{}{}{}}{{{An{{b{nc}}}}}{{h{ef}}}{AjAl}{}}{{{b{c}}{b{e}}i{b{nk}}}{{h{mf}}}{}{}{}{{l{{d{g}}}}}{AjAl}{}}{{{b{c}}}B`{}}{c{{h{e}}}{}{}}0{{{b{c}}}Bb{}}{{{b{c}}{b{e}}i{b{k}}}{{h{jf}}}{}{}{}{{l{{d{g}}}}}{}}8````````````````","D":"Dl","p":[[1,"reference"],[1,"slice"],[6,"SignatureError",0],[6,"Result",49],[1,"unit"],[10,"AsRef",50],[0,"mut"],[1,"bool"],[5,"Formatter",51],[8,"Result",51],[6,"BLST_ERROR",52],[1,"tuple"],[10,"CryptoRng",53],[10,"RngCore",53],[6,"Option",54],[5,"String",55],[5,"TypeId",56],[10,"SignatureScheme",0],[10,"AggregateableSignatureSchemes",0]],"r":[],"b":[[18,"impl-Debug-for-SignatureError"],[19,"impl-Display-for-SignatureError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAsABQAOAAEAEQADABYAAAAcAAMAIQAAAA=="}],\ -["jf_utils",{"t":"FNNHHCHHNNNQQNHHHHHHNNHHNNHHCCNHQQQQNNNNHHHHFNNNNNNNNNNNHHHNNNNN","n":["CanonicalBytes","borrow","borrow_mut","bytes_from_field_elements","bytes_to_field_elements","canonical","challenge_bit_len","compute_len_to_next_multiple","deref","deref_mut","deserialize","deserialize_canonical_bytes","deserialize_canonical_bytes","drop","field_bit_len","field_byte_len","field_switching","fq_to_fr","fq_to_fr_with_mask","fr_to_fq","from","from","hadamard_product","hash_to_field","init","into","multi_pairing","pad_with_zeros","par_utils","reed_solomon_code","serialize","test_rng","test_serde_default","test_serde_default","to_bytes","to_bytes","try_from","try_into","type_id","vzip","deserialize","serialize","parallelizable_chunks","parallelizable_slice_iter","RSCodeError","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","reed_solomon_erasure_decode","reed_solomon_erasure_decode_rou","reed_solomon_erasure_encode","to_string","try_from","try_into","type_id","vzip"],"q":[[0,"jf_utils"],[40,"jf_utils::canonical"],[42,"jf_utils::par_utils"],[44,"jf_utils::reed_solomon_code"],[64,"alloc::vec"],[65,"ark_ff::fields"],[66,"core::borrow"],[67,"jf_utils::serialize"],[68,"core::result"],[69,"serde::de"],[70,"ark_ff::fields::prime"],[71,"ark_serialize"],[72,"alloc::string"],[73,"core::convert"],[74,"ark_ec::pairing"],[75,"serde::ser"],[76,"rand::rngs::std"],[77,"core::any"],[78,"core::slice::iter"],[79,"core::error"],[80,"core::fmt"],[81,"core::iter::traits::collect"],[82,"ark_poly::domain::radix2"],[83,"ark_ff::fields::fft_friendly"],[84,"core::iter::traits::iterator"],[85,"jf_utils::conversion"],[86,"jf_utils::multi_pairing"],[87,"jf_utils::serialize::canonical"]],"i":[0,9,9,0,0,0,0,0,9,9,9,0,0,9,0,0,0,0,0,0,9,9,0,0,9,9,0,0,0,0,9,0,0,0,0,0,9,9,9,9,0,0,0,0,0,26,26,26,26,26,26,26,26,26,26,26,0,0,0,26,26,26,26,26],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{e{{h{f}}}j{{n{{l{c}}}}}}{c{{h{e}}}{{n{{l{f}}}}}j}`{{}A`}{{A`A`}A`}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{c{{Ad{Ab}}}Af}``{A`Ah}55{{{b{c}}}eAjAj}{{{b{c}}}{}Aj}1{bcAj}{cAbAl}{cc{}}{{ei}{{Ad{{h{g}}An}}}{}{{B`{{l{c}}}}}{}{{B`{{l{g}}}}}}{ce{{B`{{l{f}}}}}Aj}<{ce{}{}}{{{b{l}}{b{l}}}{{Bb{c}}}Bd}{{{b{d{h{c}}}}A`}Ahj}``{{{b{Ab}}c}AdBf}{{}Bh}````{c{{Ad{e}}}{}{}}0{{{b{c}}}Bj{}}6{c{{Ad{e}}}AfBl}{{{b{c}}e}AdAlBf}{{{b{{l{c}}}}A`}{{Bn{c}}}{}}{{{b{{l{c}}}}}{{C`{c}}}{}}`{{{b{c}}}{{b{Cb}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{A`Ah}{{{b{Cd}}{b{dCf}}}Ch}0{cc{}}{{}A`}{ce{}{}}{{cA`}{{Ad{{h{e}}Cd}}}Cjj}{{cA`{b{{Cl{e}}}}}{{Ad{{h{e}}Cd}}}CjCn}{{cA`}{{`{{Db{}{{D`{e}}}}}}}Cjj}{{{b{c}}}An{}}{c{{Ad{e}}}{}{}}0{{{b{c}}}Bj{}}6","D":"Bn","p":[[1,"reference"],[0,"mut"],[1,"u8"],[5,"Vec",64],[10,"Field",65],[1,"slice"],[10,"Borrow",66],[1,"usize"],[5,"CanonicalBytes",0,67],[6,"Result",68],[10,"Deserializer",69],[1,"unit"],[10,"PrimeField",70],[10,"CanonicalSerialize",71],[5,"String",72],[10,"AsRef",73],[5,"PairingOutput",74],[10,"Pairing",74],[10,"Serializer",75],[5,"StdRng",76],[5,"TypeId",77],[10,"CanonicalDeserialize",71],[5,"Chunks",78],[5,"Iter",78],[10,"Error",79],[5,"RSCodeError",44],[5,"Formatter",80],[8,"Result",80],[10,"IntoIterator",81],[5,"Radix2EvaluationDomain",82],[10,"FftField",83],[17,"Item"],[10,"Iterator",84]],"r":[[0,67],[3,85],[4,85],[5,67],[16,85],[17,85],[18,85],[19,85],[23,85],[26,86],[40,87],[41,87]],"b":[[51,"impl-Debug-for-RSCodeError"],[52,"impl-Display-for-RSCodeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACkACgACAAEABwAKABUAAAAZAAAAHAAAAB8AAwAlAAcALgAHADcAAAA8AAQA"}],\ -["jf_vdf",{"t":"RRRRKFNNNNNNNNMNNNNNCMNNNNMNTFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Input","Output","Proof","PublicParameter","VDF","VDFError","borrow","borrow_mut","deref","deref_mut","drop","eq","equivalent","equivalent","eval","fmt","fmt","from","init","into","minroot","setup","to_string","try_from","try_into","type_id","verify","vzip","EXP_COEF","MinRoot","MinRootElement","MinRootField","MinRootPP","batch_check","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","cmp","cmp","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","difficulty","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","from","from","from","from","init","init","init","into","into","into","partial_cmp","partial_cmp","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip"],"q":[[0,"jf_vdf"],[28,"jf_vdf::minroot"],[104,"core::result"],[105,"core::fmt"],[106,"core::option"],[107,"rand_core"],[108,"alloc::string"],[109,"core::any"],[110,"ark_serialize::error"],[111,"core::iter::traits::iterator"],[112,"core::marker"],[113,"core::clone"],[114,"core::cmp"],[115,"core::default"],[116,"ark_serialize"],[117,"std::io"],[118,"ark_ec"]],"i":[37,37,37,37,0,0,5,5,5,5,5,5,5,5,37,5,5,5,5,5,0,37,5,5,5,5,37,5,22,0,0,0,0,19,23,38,19,23,38,19,23,19,23,19,23,19,23,19,23,19,23,38,19,23,38,19,23,19,23,19,38,19,23,19,23,19,19,23,23,38,19,23,38,19,23,23,38,19,23,38,19,23,19,23,19,23,19,23,38,19,23,38,19,23,38,19,23,38,19,23,38,38,19,23],"f":"``````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{j}}{b{j}}}l}{{{b{c}}{b{e}}}l{}{}}0{{{b{c}}{b{e}}}{{A`{{n{gi}}j}}}{}{}{}{}}{{{b{j}}{b{dAb}}}Ad}0{cc{}}{{}f}{ce{}{}}`{{Af{Ah{{b{dc}}}}}{{A`{ej}}}{AjAl}{}}{{{b{c}}}An{}}{c{{A`{e}}}{}{}}0{{{b{c}}}B`{}}{{{b{c}}{b{e}}{b{g}}{b{i}}}{{A`{{A`{hh}}j}}}{}{}{}{}}5`````{c{{A`{hBb}}}{{Bh{}{{Bd{{b{Bf}}}}}}Bj}}{e{{A`{hBb}}}Bl{{Bh{}{{Bd{{b{{Bn{c}}}}}}}}Bj}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bf}}}{{A`{hBb}}}}{{{b{{Bn{c}}}}}{{A`{hBb}}}Bl}{{{b{Bf}}}Bf}{{{b{{Bn{c}}}}}{{Bn{c}}}{C`Bl}}{{{b{c}}{b{de}}}h{}{}}0{{{b{Bf}}{b{Bf}}}Cb}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}Cb{CdBl}}{{}Bf}{{}{{Bn{c}}}{CfBl}}{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{{cChCj}{{A`{BfBb}}}Cl}{{cChCj}{{A`{{Bn{e}}Bb}}}ClBl}`{fh}00{{{b{Bf}}{b{Bf}}}l}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}l{CnBl}}{{{b{c}}{b{e}}}l{}{}}000{{{b{c}}{b{e}}}{{A`{{n{gi}}j}}}{}{}{}{}}{{{b{Bf}}{b{dAb}}}Ad}{{{b{{Bn{c}}}}{b{dAb}}}Ad{D`Bl}}{cc{}}00{e{{Bn{c}}}Bl{{Dd{}{{Db{c}}}}}}{{}f}00{ce{}{}}00{{{b{Bf}}{b{Bf}}}{{Ah{Cb}}}}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}{{Ah{Cb}}}{DfBl}}{{{b{Bf}}cCh}{{A`{hBb}}}Dh}{{{b{{Bn{c}}}}eCh}{{A`{hBb}}}BlDh}{{{b{Bf}}Ch}f}{{{b{{Bn{c}}}}Ch}fBl}{{Af{Ah{{b{dc}}}}}{{A`{ej}}}{AjAl}{}}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}00000{{{b{c}}}B`{}}00{{{b{c}}{b{e}}{b{g}}{b{i}}}{{A`{{A`{hh}}j}}}{}{}{}{}};;;","D":"Cb","p":[[1,"reference"],[0,"mut"],[1,"usize"],[1,"unit"],[5,"VDFError",0],[1,"bool"],[1,"tuple"],[6,"Result",104],[5,"Formatter",105],[8,"Result",105],[1,"u64"],[6,"Option",106],[10,"CryptoRng",107],[10,"RngCore",107],[5,"String",108],[5,"TypeId",109],[6,"SerializationError",110],[17,"Item"],[5,"MinRootPP",28],[10,"Iterator",111],[10,"Send",112],[10,"MinRootField",28],[5,"MinRootElement",28],[10,"Clone",113],[6,"Ordering",114],[10,"Ord",114],[10,"Default",115],[6,"Compress",116],[6,"Validate",116],[10,"Read",117],[10,"PartialEq",114],[10,"Debug",105],[17,"BaseField"],[10,"AffineRepr",118],[10,"PartialOrd",114],[10,"Write",117],[10,"VDF",0],[5,"MinRoot",28]],"r":[],"b":[[15,"impl-Debug-for-VDFError"],[16,"impl-Display-for-VDFError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAE8ACQAHAAcAEAABABMAAAAXAAMAHAAAACIAGQA9AAsATAADAFMAFQA="}],\ -["jf_vid",{"t":"PRRPPPRFGIKNCNNNNNNNNNNNOMONNNNNMNNNNNNNNNNNMMMNNNNNNNNNNNMCCMNONNNNNNNNMNNIFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFNNNNNNNOONNNNNNNNNMOMONNNNNKRMM","n":["Argument","Commit","Common","Err","Internal","Ok","Share","VidDisperse","VidError","VidResult","VidScheme","__clone_box","advz","as_any","as_any","as_any_mut","as_any_mut","as_error_source","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","commit","commit_only","common","deref","deref","deref_mut","deref_mut","deserialize","disperse","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","get_multiplicity","get_num_storage_nodes","get_payload_byte_len","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","is_consistent","payload_prover","precomputable","recover_payload","serialize","shares","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","verify_share","vzip","vzip","Advz","AdvzInternal","Common","MaybeGPU","Share","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone_into","clone_into","clone_into","commit_only","commit_only_precompute","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","disperse","disperse_precompute","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","get_multiplicity","get_num_storage_nodes","get_payload_byte_len","hash","hash","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","is_consistent","kzg_batch_commit","kzg_batch_commit","new","new","payload_proof","payload_proof","payload_prover","payload_verify","payload_verify","precomputable","recover_payload","serialize","serialize","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify_share","vzip","vzip","vzip","with_multiplicity","with_multiplicity","LargeRangeProof","SmallRangeProof","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","serialize","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","PrecomputeData","__clone_box","as_any","as_any_mut","batch_check","borrow","borrow_mut","check","clone","clone_into","deref","deref_mut","deserialize","deserialize_with_mode","drop","eq","equivalent","equivalent","equivalent","fmt","from","hash","init","into","into_any","into_any_arc","into_any_rc","serialize","serialize_with_mode","serialized_size","to_owned","try_from","try_into","type_id","vzip","PayloadProver","Statement","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","commit","common","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","payload_proof","payload_subslice","payload_verify","range","to_owned","try_from","try_into","type_id","vzip","Precomputable","PrecomputeData","commit_only_precompute","disperse_precompute"],"q":[[0,"jf_vid"],[75,"jf_vid::advz"],[191,"jf_vid::advz::payload_prover"],[249,"jf_vid::advz::precomputable"],[284,"jf_vid::payload_prover"],[313,"jf_vid::precomputable"],[317,"dyn_clone::sealed"],[318,"core::any"],[319,"core::error"],[320,"core::marker"],[321,"core::clone"],[322,"core::fmt"],[323,"serde::de"],[324,"core::cmp"],[325,"core::hash"],[326,"serde::ser"],[327,"tagged_base64"],[328,"core::convert"],[329,"core::result"],[330,"alloc::boxed"],[331,"alloc::sync"],[332,"alloc::rc"],[333,"alloc::vec"],[334,"alloc::string"],[335,"ark_serialize::error"],[336,"ark_ec::pairing"],[337,"jf_merkle_tree::hasher"],[338,"core::iter::traits::iterator"],[339,"ark_serialize"],[340,"std::io"],[341,"ark_poly::polynomial::univariate::dense"],[342,"core::borrow"],[343,"core::ops::range"]],"i":[35,8,8,13,35,13,8,0,0,0,0,7,0,7,35,7,35,35,7,35,7,35,7,7,7,8,7,7,35,7,35,7,8,7,35,7,7,7,7,7,35,35,7,35,8,8,8,7,7,35,7,35,7,35,7,35,7,35,8,0,0,8,7,7,7,35,7,35,7,35,7,35,8,7,35,0,0,0,0,0,52,53,49,52,53,49,52,53,49,49,52,53,49,52,53,49,49,52,53,49,52,53,49,52,52,52,53,49,52,53,49,53,49,49,52,52,52,53,49,52,53,49,52,52,52,53,53,53,49,49,49,52,53,49,52,53,49,52,52,52,53,49,52,53,49,52,53,49,52,53,49,52,53,49,52,53,49,52,58,60,60,52,52,52,0,52,52,0,52,53,49,49,49,52,53,49,52,53,49,52,53,49,52,53,49,52,52,53,49,60,52,0,0,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,64,64,63,63,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,0,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,70,65,70,65,65,65,65,65,65,0,72,72,72],"f":"```````````{{{b{c}}d}f{}}`{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{l}}}{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{n{c}}}}}{{n{c}}}{A`Ab}}{{{b{c}}{b{je}}}f{}{}}`{{{b{j{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}i}{{Aj{c}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}{{Ch{{Cf{Cd}}}}}}`{Cj{{b{c}}}{}}0{Cj{{b{jc}}}{}}0{c{{Cl{{n{e}}}}}Cn{A`Ab}}{{{b{j{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}i}{{Aj{{n{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}{{Ch{{Cf{Cd}}}}}}{Cjf}0{{{b{{n{c}}}}{b{{n{c}}}}}D`{A`Ab}}{{{b{c}}{b{e}}}D`{}{}}00{{{b{{n{c}}}}{b{jDb}}}Dd{A`Ab}}{{{b{Df}}{b{jDb}}}Dd}0{cc{}}0{{{b{c}}}Dh{}}00{{{b{{n{c}}}}{b{je}}}f{A`Ab}Dj}{{}Cj}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{c}}{b{e}}}{{Aj{f}}}{}{}}``{{{b{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}{b{{Cf{e}}}}{b{g}}}{{Aj{{Eb{Cd}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}}{{{b{{n{c}}}}e}Cl{A`Ab}Ed}`{{{b{c}}}e{}{}}{{{b{c}}}Ef{}}{c{{Cl{e}}}{}{}}000{{{b{c}}}Eh{}}0{{{b{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}{b{e}}{b{g}}{b{c}}}{{Aj{{Cl{ff}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}};;`````{{{b{c}}d}f{}}00{{{b{c}}}{{b{h}}}{}}00{{{b{jc}}}{{b{jh}}}{}}00{g{{Cl{fEj}}}ElEn{{Fd{}{{F`{{b{{Fb{ce}}}}}}}}Ff}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{{{b{{Fb{ce}}}}}{{Cl{fEj}}}ElEn}{{{b{{Fh{ceg}}}}}{{Fh{ceg}}}{ElAl}Al{BlAl}}{{{b{{Fj{ce}}}}}{{Fj{ce}}}ElEn}{{{b{{Fb{ce}}}}}{{Fb{ce}}}ElEn}{{{b{c}}{b{je}}}f{}{}}00{{{b{j{Fh{ceg}}}}i}{{Aj{k}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}}{{{b{{Fh{ceg}}}}i}{{Aj{{Fl{km}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}{}}{Cj{{b{c}}}{}}00{Cj{{b{jc}}}{}}00{c{{Cl{{Fj{eg}}}}}CnElEn}{c{{Cl{{Fb{eg}}}}}CnElEn}{{cFnG`}{{Cl{{Fb{eg}}Ej}}}GbElEn}{{{b{j{Fh{ceg}}}}i}{{Aj{{n{{Fh{ceg}}}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}}{{{b{{Fh{ceg}}}}i{b{k}}}{{Aj{{n{{Fh{ceg}}}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}}{Cjf}00{{{b{{Fh{ceg}}}}{b{{Fh{ceg}}}}}D`{ElBf}Bf{BlBf}}{{{b{{Fj{ce}}}}{b{{Fj{ce}}}}}D`ElEn}{{{b{{Fb{ce}}}}{b{{Fb{ce}}}}}D`ElEn}{{{b{c}}{b{e}}}D`{}{}}00000000{{{b{{Fh{ceg}}}}{b{jDb}}}Dd{ElAn}An{BlAn}}{{{b{{Fj{ce}}}}{b{jDb}}}DdElEn}{{{b{{Fb{ce}}}}{b{jDb}}}DdElEn}{cc{}}00{{{b{c}}}Dh{}}00{{{b{{Fj{ce}}}}{b{jg}}}fElEnDj}{{{b{{Fb{ce}}}}{b{jg}}}fElEnDj}{{}Cj}00{ce{}{}}00{{{Dl{c}}}{{Dl{h}}}{}}00{{{Dn{c}}}{{Dn{h}}}{}}00{{{E`{c}}}{{E`{h}}}{}}00{{{b{c}}{b{e}}}{{Aj{f}}}{}{}}{{{b{jGd}}{b{{Cf{Gf}}}}}{{Aj{Eb}}}}{{{b{j{Gh{ce}}}}{b{{Cf{Gf}}}}}{{Aj{Eb}}}El{}}{{DhDhc}{{Aj{{Gh{eg}}}}}GjEl{}}{{DhDhc}{{Aj{{Fh{egf}}}}}GjEl{}}{{{b{{Fh{ceg}}}}i{Gl{Cj}}}{{Aj{Gn}}}ElEnBl{{Ch{{Cf{Cd}}}}}}{{{b{{Fh{ceg}}}}i{Gl{Cj}}}{{Aj{H`}}}ElEnBl{{Ch{{Cf{Cd}}}}}}`{{{b{{Fh{ceg}}}}{Hb{{Fh{ceg}}}}{b{Gn}}}{{Aj{{Cl{ff}}}}}ElEnBl}{{{b{{Fh{ceg}}}}{Hb{{Fh{ceg}}}}{b{H`}}}{{Aj{{Cl{ff}}}}}ElEnBl}`{{{b{{Fh{ceg}}}}{b{{Cf{i}}}}{b{k}}}{{Aj{{Eb{Cd}}}}}ElEnBl{}{}}{{{b{{Fj{ce}}}}g}ClElEnEd}{{{b{{Fb{ce}}}}g}ClElEnEd}{{{b{{Fb{ce}}}}gFn}{{Cl{fEj}}}ElEnHd}{{{b{{Fb{ce}}}}Fn}CjElEn}{{{b{c}}}e{}{}}00{c{{Cl{e}}}{}{}}00000{{{b{c}}}Eh{}}00{{{b{{Fh{ceg}}}}{b{i}}{b{k}}{b{m}}}{{Aj{{Cl{ff}}}}}ElEnBl{}{}{}}{ce{}{}}00{{DhDhDhc}{{Aj{{Gh{eg}}}}}GjEl{}}{{DhDhDhc}{{Aj{{Fh{egf}}}}}GjEl{}}``{{{b{c}}d}f{}}0{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{H`{c}}}}}{{H`{c}}}Al}{{{b{{Gn{c}}}}}{{Gn{c}}}Al}{{{b{c}}{b{je}}}f{}{}}0{Cj{{b{c}}}{}}0{Cj{{b{jc}}}{}}0{c{{Cl{{H`{e}}}}}Cn{HfHh}}{c{{Cl{{Gn{e}}}}}Cn{HfHh}}{Cjf}0{{{b{{H`{c}}}}{b{{H`{c}}}}}D`Bf}{{{b{{Gn{c}}}}{b{{Gn{c}}}}}D`Bf}{{{b{c}}{b{e}}}D`{}{}}00000{{{b{{H`{c}}}}{b{jDb}}}DdAn}{{{b{{Gn{c}}}}{b{jDb}}}DdAn}{cc{}}0{{}Cj}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{{H`{c}}}}e}Cl{HfHh}Ed}{{{b{{Gn{c}}}}e}Cl{HfHh}Ed}{{{b{c}}}e{}{}}0{c{{Cl{e}}}{}{}}000{{{b{c}}}Eh{}}088`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{e{{Cl{fEj}}}El{{Fd{}{{F`{{b{{Hj{c}}}}}}}}Ff}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Hj{c}}}}}{{Cl{fEj}}}El}{{{b{{Hj{c}}}}}{{Hj{c}}}{ElAl}}{{{b{c}}{b{je}}}f{}{}}{Cj{{b{c}}}{}}{Cj{{b{jc}}}{}}{c{{Cl{{Hj{e}}}}}CnEl}{{cFnG`}{{Cl{{Hj{e}}Ej}}}GbEl}{Cjf}{{{b{{Hj{c}}}}{b{{Hj{c}}}}}D`{ElBf}}{{{b{c}}{b{e}}}D`{}{}}00{{{b{{Hj{c}}}}{b{jDb}}}Dd{ElAn}}{cc{}}{{{b{{Hj{c}}}}{b{je}}}fElDj}{{}Cj}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Hj{c}}}}e}ClElEd}{{{b{{Hj{c}}}}eFn}{{Cl{fEj}}}ElHd}{{{b{{Hj{c}}}}Fn}CjEl}{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Eh{}}9``{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Hb{c}}}}}{{Hb{c}}}A`}{{{b{c}}{b{je}}}f{}{}}``{Cj{{b{c}}}{}}{Cj{{b{jc}}}{}}{Cjf}{cc{}}{{}Cj}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{Hl}}c{Gl{Cj}}}{{Aj{e}}}{{Ch{{Cf{Cd}}}}}{AlAnBdBfBjBb}}`{{{b{Hl}}{Hb{Hl}}{b{c}}}{{Aj{{Cl{ff}}}}}{AlAnBdBfBjBb}}`{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Eh{}}8``{{{b{{I`{}{{Hn{c}}}}}}e}{{Aj{{Fl{gc}}}}}{AlAnBdBfBhBlBjBb}{{Ch{{Cf{Cd}}}}}{}}{{{b{{I`{}{{Hn{c}}}}}}e{b{c}}}{{Aj{{n{{I`{}{{Hn{c}}}}}}}}}{AlAnBdBfBhBlBjBb}{{Ch{{Cf{Cd}}}}}}","D":"Hn","p":[[1,"reference"],[5,"Private",317],[1,"unit"],[10,"Any",318],[0,"mut"],[10,"Error",319],[5,"VidDisperse",0],[10,"VidScheme",0],[10,"Sized",320],[17,"Commit"],[17,"Share"],[17,"Common"],[8,"VidResult",0],[10,"Clone",321],[10,"Debug",322],[10,"Display",322],[10,"DeserializeOwned",323],[10,"Eq",324],[10,"PartialEq",324],[10,"Hash",325],[10,"Serialize",326],[10,"Sync",320],[5,"TaggedBase64",327],[10,"TryFrom",328],[10,"Into",328],[1,"u8"],[1,"slice"],[10,"AsRef",328],[1,"usize"],[6,"Result",329],[10,"Deserializer",323],[1,"bool"],[5,"Formatter",322],[8,"Result",322],[6,"VidError",0],[1,"u32"],[10,"Hasher",325],[5,"Box",330],[5,"Arc",331],[5,"Rc",332],[5,"Vec",333],[10,"Serializer",326],[5,"String",334],[5,"TypeId",318],[6,"SerializationError",335],[10,"Pairing",336],[10,"HasherDigest",337],[17,"Item"],[5,"Common",75],[10,"Iterator",338],[10,"Send",320],[5,"AdvzInternal",75],[5,"Share",75],[1,"tuple"],[6,"Compress",339],[6,"Validate",339],[10,"Read",340],[10,"MaybeGPU",75],[5,"DensePolynomial",341],[8,"Advz",75],[10,"Borrow",342],[5,"Range",343],[5,"LargeRangeProof",191],[5,"SmallRangeProof",191],[5,"Statement",284],[10,"Write",340],[10,"CanonicalSerialize",339],[10,"CanonicalDeserialize",339],[5,"PrecomputeData",249],[10,"PayloadProver",284],[17,"PrecomputeData"],[10,"Precomputable",313]],"r":[],"b":[[40,"impl-Debug-for-VidError"],[41,"impl-Display-for-VidError"],[162,"impl-PayloadProver%3CLargeRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Evaluation%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[163,"impl-PayloadProver%3CSmallRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Proof%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[165,"impl-PayloadProver%3CLargeRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Evaluation%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[166,"impl-PayloadProver%3CSmallRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Proof%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAPYAGwAMAAAADgAKABwABAAiAAgAMAACADUABQA/AAAAQQAHAEoAAQBRADUAigAHAJUACQCgAAAAowABAKYAAQCpABQAwgAfAOQAAQDoABEA+wASAA8BAQASAQoAHwEGACgBAgAsAQAALgECADUBBAA="}],\ -["jf_vrf",{"t":"RRRRRRRKCNMMMMMGFFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Error","Input","Output","Proof","PublicKey","PublicParameter","SecretKey","Vrf","blsvrf","evaluate","key_gen","param_gen","proof_to_hash","prove","verify","BLSVRFCipherSuite","BLSVRFError","BLSVRFScheme","VRF_BLS_12_381_SHA256","VRF_BLS_12_381_SHA512","as_error_source","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","key_gen","new","param_gen","proof_to_hash","prove","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip"],"q":[[0,"jf_vrf"],[15,"jf_vrf::blsvrf"],[67,"core::result"],[68,"core::fmt"],[69,"core::clone"],[70,"core::marker"],[71,"serde::de"],[72,"serde::ser"],[73,"core::cmp"],[74,"zeroize"],[75,"core::error"],[76,"rand_core"],[77,"core::option"],[78,"alloc::string"],[79,"core::any"]],"i":[9,9,9,9,9,9,9,0,0,9,9,9,9,9,9,0,0,0,29,29,32,33,29,32,33,29,32,33,29,32,33,29,32,33,29,32,29,32,32,33,29,32,33,29,32,33,29,32,33,33,33,33,33,32,33,29,32,33,29,32,33,29,32,33,33,29,32],"f":"`````````{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{g}}{Ad{k}}{Ad{bAa}}}{{Af{mo}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{bAa}}}{{Af{{C`{ge}}o}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Cb{{Ad{bAa}}}}}{{Af{co}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{i}}}{{Af{mo}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{g}}{Ad{k}}{Ad{bAa}}}{{Af{io}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{i}}{Ad{e}}{Ad{k}}}{{Af{{C`{Cd{Cb{m}}}}o}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj}`````{{{Ad{c}}}{{Ad{Bj}}}{}}{{{Ad{c}}}{{Ad{e}}}{}{}}00{{{Ad{bc}}}{{Ad{be}}}{}{}}00{Cf{{Ad{c}}}{}}00{Cf{{Ad{bc}}}{}}00{CfCh}00{{{Ad{Cj}}{Ad{bCl}}}Cn}{{{Ad{D`}}{Ad{bCl}}}Cn}0{cc{}}00{{}Cf}00{ce{}{}}00{{{Ad{Db}}{Ad{c}}{Ad{be}}}{{Af{{C`{gi}}D`}}}{}{BlBn}{}{}}{CjDb}{{{Ad{Db}}{Cb{{Ad{bc}}}}}{{Af{eD`}}}{BlBn}{}}{{{Ad{bDb}}{Ad{c}}{Ad{e}}}{{Af{gD`}}}{}{}{}}{{{Ad{Db}}{Ad{c}}{Ad{e}}{Ad{g}}{Ad{bi}}}{{Af{kD`}}}{}{}{}{BlBn}{}}{{{Ad{c}}}Dd{}}{c{{Af{e}}}{}{}}00000{{{Ad{c}}}Df{}}00{{{Ad{bDb}}{Ad{c}}{Ad{e}}{Ad{g}}{Ad{i}}}{{Af{{C`{Cd{Cb{k}}}}D`}}}{}{}{}{}{}}999","D":"Db","p":[[0,"mut"],[17,"PublicParameter"],[17,"PublicKey"],[17,"SecretKey"],[17,"Proof"],[17,"Input"],[17,"Output"],[17,"Error"],[10,"Vrf",0],[1,"reference"],[6,"Result",67],[10,"Debug",68],[10,"Clone",69],[10,"Send",70],[10,"Sync",70],[10,"Deserialize",71],[10,"Serialize",72],[10,"PartialEq",73],[10,"Eq",73],[10,"Zeroize",74],[10,"Error",75],[10,"CryptoRng",76],[10,"RngCore",76],[1,"tuple"],[6,"Option",77],[1,"bool"],[1,"usize"],[1,"unit"],[6,"BLSVRFCipherSuite",15],[5,"Formatter",68],[8,"Result",68],[5,"BLSVRFError",15],[5,"BLSVRFScheme",15],[5,"String",78],[5,"TypeId",79]],"r":[],"b":[[37,"impl-Display-for-BLSVRFError"],[38,"impl-Debug-for-BLSVRFError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACIABAAVABIAKwACADYACQBBAAIA"}]\ +["jf_relation",{"t":"GPPPPPPPPPPPPPPNNNNNCCNNNNNNCCNNNNNNNNNNSSSHKFKIGFGPPPPIINNNNMNNNMNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNMNNNNNNNNNMNMNNNNNMNNNMNNNNNNNNMNNNNNNNNNNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNMNNNNMNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNMNNNNNNNNNMNMNNMNMNMNMNNNNMNNNNMNMNMNMNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNMNTFKTKTNNNNNNNNNNNCNNHNNNNNNMCHNNNNCNTKTFTKFNNNNNNNNNNNNNNNNNNNNNNNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMMNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHCFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFFFFFFFFFFFKFFFFFFFFFFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["CircuitError","DomainCreationError","FieldAlgebraError","GateCheckFailure","IndexError","InternalError","LookupUnsupported","ModifyFinalizedCircuit","NotSupported","ParameterError","PubInputLenMismatch","UnfinalizedCircuit","UnsupportedCurve","VarIndexOutOfBound","WrongPlonkType","as_any","as_any_mut","as_error_source","borrow","borrow_mut","constants","constraint_system","deref","deref_mut","drop","fmt","fmt","from","gadgets","gates","init","into","into_any","into_any_arc","into_any_rc","to_string","try_from","try_into","type_id","vzip","GATE_WIDTH","N_MUL_SELECTORS","N_TURBO_PLONK_SELECTORS","compute_coset_representatives","Arithmetization","BoolVar","Circuit","GateId","MergeableCircuitType","PlonkCircuit","PlonkType","TurboPlonk","TypeA","TypeB","UltraPlonk","Variable","WireId","__clone_box","__clone_box","__clone_box","__clone_box","add","add","add_constant","add_constant_gate","add_gate","add_gate","add_range_check_variable","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","binary_emulated_sw_point_vars_select","binary_emulated_te_point_vars_select","binary_point_vars_select","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_circuit_satisfiability","check_circuit_satisfiability","check_var_bound","check_vars_bound","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","compute_extended_permutation_polynomials","compute_extended_permutation_polynomials","compute_key_table_polynomial","compute_key_table_polynomial","compute_lookup_prod_polynomial","compute_lookup_prod_polynomial","compute_lookup_sorted_vec_polynomials","compute_lookup_sorted_vec_polynomials","compute_merged_lookup_table","compute_merged_lookup_table","compute_prod_permutation_polynomial","compute_prod_permutation_polynomial","compute_pub_input_polynomial","compute_pub_input_polynomial","compute_q_dom_sep_polynomial","compute_q_dom_sep_polynomial","compute_range_table_polynomial","compute_range_table_polynomial","compute_selector_polynomials","compute_selector_polynomials","compute_table_dom_sep_polynomial","compute_table_dom_sep_polynomial","compute_wire_polynomials","compute_wire_polynomials","conditional_select","conditional_select_emulated","create_boolean_variable","create_constant_emulated_sw_point_variable","create_constant_emulated_te_point_variable","create_constant_emulated_variable","create_constant_point_variable","create_constant_variable","create_constant_variable","create_emulated_sw_point_variable","create_emulated_te_point_variable","create_emulated_variable","create_point_variable","create_public_boolean_variable","create_public_emulated_sw_point_variable","create_public_emulated_te_point_variable","create_public_emulated_variable","create_public_point_variable","create_public_variable","create_public_variable","create_table_and_lookup_variables","create_variable","create_variable","default","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","ecc_add","emulated_add","emulated_add_constant","emulated_add_constant_gate","emulated_add_gate","emulated_mul","emulated_mul_constant","emulated_mul_constant_gate","emulated_mul_gate","emulated_sub","emulated_sub_constant","emulated_sw_ecc_add","emulated_sw_ecc_add_gate","emulated_sw_point_witness","emulated_te_ecc_add","emulated_te_ecc_add_gate","emulated_te_point_witness","emulated_witness","enforce_bool","enforce_bool","enforce_constant","enforce_constant","enforce_emulated_sw_point_equal","enforce_emulated_te_point_equal","enforce_emulated_var_equal","enforce_equal","enforce_equal","enforce_false","enforce_geq","enforce_geq_constant","enforce_gt","enforce_gt_constant","enforce_in_range","enforce_leq","enforce_leq_constant","enforce_lt","enforce_lt_constant","enforce_on_curve","enforce_point_equal","enforce_true","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","eval_domain_size","eval_domain_size","false_var","finalize_for_arithmetization","finalize_for_mergeable_circuit","fixed_base_scalar_mul","fmt","fmt","fmt","fmt","from","from","from","from","from","gen_quad_poly","glv_mul","hash","hash","init","init","init","init","insert_gate","into","into","into","into","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","inverse_point","is_emulated_sw_point_equal","is_emulated_te_point_equal","is_emulated_var_equal","is_emulated_var_zero","is_equal","is_geq","is_geq_constant","is_gt","is_gt_constant","is_in_range","is_leq","is_leq_constant","is_lt","is_lt_constant","is_neutral_point","is_point_equal","is_zero","lc","lc_gate","logic_and","logic_and_all","logic_neg","logic_or","logic_or_gate","merge","mod_add","mod_add_constant","mod_add_vec","mod_mul","mod_mul_constant","mod_negate","msm","msm_with_var_scalar_length","mul","mul","mul_add","mul_add_gate","mul_constant","mul_constant_gate","mul_gate","mul_gate","neutral_point_variable","new_turbo_plonk","new_ultra_plonk","non_native_linear_gen","non_native_power_11_gate","non_native_power_11_gen","non_native_power_5_gen","non_zero_gate","num_gates","num_gates","num_inputs","num_inputs","num_range_blocks","num_vars","num_vars","num_wire_types","num_wire_types","one","one","pad_gates","pad_gates","point_witness","power_11_gate","power_11_gen","public_input","public_input","quad_poly_gate","range_bit_len","range_size","set_variable_public","set_variable_public","srs_size","srs_size","sub","sub","sub_gate","sub_gate","sum","support_lookup","support_lookup","to_owned","to_owned","to_owned","to_owned","true_var","truncate","truncate_gate","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","unpack","variable_base_binary_scalar_mul","variable_base_scalar_mul","vzip","vzip","vzip","vzip","witness","witness","witness_mut","zero","zero","B","EmulatedVariable","EmulationConfig","NUM_LIMBS","SerializableEmulatedStruct","T","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","ecc","fmt","from","from_emulated_field","init","into","into_any","into_any_arc","into_any_rc","native_vars","serialize_to_native_elements","test_utils","to_emulated_field","to_owned","try_from","try_into","type_id","ultraplonk","vzip","BETA","MultiScalarMultiplicationCircuit","NEG_ALPHA","PointVariable","S","SWToTEConParam","TEPoint","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","deref","deref","deref_mut","deref_mut","drop","drop","emulated","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from","get_x","get_x","get_y","get_y","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","inverse","msm","msm_with_var_scalar_length","serialize_to_native_elements","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","EmulatedSWPointVariable","EmulatedTEPointVariable","SWPoint","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","drop","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","from","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","serialize_to_native_elements","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","test_variable_independence_for_circuit","mod_arith","FpElem","FpElemVar","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","components","components","convert_to_var","default","default","deref","deref","deref_mut","deref_mut","drop","drop","enforce_equal","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","field_elem","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","new","new_from_field_element","new_from_fp_elem","new_unchecked","one","param_m","param_m","to_owned","to_owned","try_from","try_from","try_into","try_into","two_power_m","two_power_m","type_id","type_id","vzip","vzip","witness","witness_fp_elem","zero","AdditionGate","BoolGate","CondSelectGate","ConstantAdditionGate","ConstantGate","ConstantMultiplicationGate","CurvePointXAdditionGate","CurvePointYAdditionGate","EdwardsCurveEquationGate","EqualityGate","FifthRootGate","Gate","IoGate","LinCombGate","LogicOrGate","LogicOrOutputGate","LookupGate","MulAddGate","MultiplicationGate","PaddingGate","QuadPolyGate","QuaternaryPointSelectXGate","QuaternaryPointSelectYGate","SubtractionGate","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","as_any_mut","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","downcast","downcast_mut","downcast_rc","downcast_ref","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","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","from","from","from","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","into_any_rc","is","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","name","q_c","q_c","q_c","q_c","q_c","q_c","q_c","q_dom_sep","q_dom_sep","q_ecc","q_ecc","q_ecc","q_ecc","q_hash","q_hash","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lc","q_lookup","q_lookup","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_mul","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","q_o","table_dom_sep","table_dom_sep","table_key","table_key","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip"],"q":[[0,"jf_relation"],[40,"jf_relation::constants"],[44,"jf_relation::constraint_system"],[366,"jf_relation::gadgets"],[402,"jf_relation::gadgets::ecc"],[478,"jf_relation::gadgets::ecc::emulated"],[563,"jf_relation::gadgets::test_utils"],[564,"jf_relation::gadgets::ultraplonk"],[565,"jf_relation::gadgets::ultraplonk::mod_arith"],[642,"jf_relation::gates"],[1281,"core::any"],[1282,"core::error"],[1283,"core::fmt"],[1284,"alloc::boxed"],[1285,"alloc::sync"],[1286,"alloc::rc"],[1287,"alloc::string"],[1288,"core::result"],[1289,"core::option"],[1290,"alloc::vec"],[1291,"ark_ff::fields::prime"],[1292,"dyn_clone::sealed"],[1293,"ark_ff::fields::fft_friendly"],[1294,"jf_relation::gadgets::ecc::emulated::short_weierstrass"],[1295,"jf_relation::gadgets::emulated"],[1296,"jf_relation::gadgets::ecc::emulated::twisted_edwards"],[1297,"ark_ff::fields"],[1298,"core::clone"],[1299,"ark_poly::polynomial::univariate::dense"],[1300,"ark_ec::models::twisted_edwards::affine"],[1301,"ark_ec::models::twisted_edwards"],[1302,"core::hash"],[1303,"core::cmp"],[1304,"ark_ec::models::short_weierstrass::affine"],[1305,"jf_relation::gadgets::ecc::conversion"],[1306,"ark_ec::models::short_weierstrass"],[1307,"ark_ec::models::twisted_edwards::group"],[1308,"jf_relation::gadgets::ecc::msm"],[1309,"ark_serialize::error"],[1310,"core::iter::traits::iterator"],[1311,"core::marker"],[1312,"ark_serialize"],[1313,"std::io"],[1314,"core::default"],[1315,"jf_relation::gates::arithmetic"],[1316,"jf_relation::gates::ecc"],[1317,"jf_relation::gates::logic"],[1318,"jf_relation::gates::lookup"]],"i":[0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,31,32,32,31,0,0,24,31,32,22,20,22,22,22,20,22,22,24,31,32,22,24,31,32,22,22,22,22,24,31,32,22,24,31,32,22,20,22,22,22,24,31,32,22,24,31,32,22,24,24,31,31,32,32,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,34,22,22,22,20,22,22,22,22,20,22,22,22,22,22,20,22,22,22,22,20,22,22,20,22,22,24,31,32,22,24,31,32,22,24,31,32,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,20,22,22,22,22,20,22,22,22,22,22,22,22,22,22,22,22,22,22,22,31,32,31,31,31,32,32,32,34,22,20,22,22,22,24,31,32,22,21,24,31,32,22,22,22,31,32,24,31,32,22,22,24,31,32,22,24,31,32,22,24,31,32,24,31,32,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,20,22,22,22,22,22,20,22,22,22,22,22,22,22,22,22,20,22,20,22,22,20,22,20,22,20,22,20,22,22,22,22,20,22,22,22,22,20,22,34,22,20,22,20,22,22,20,22,24,31,32,22,20,22,22,24,31,32,22,24,31,32,22,24,31,32,22,22,22,22,24,31,32,22,20,22,22,20,22,26,0,0,26,0,26,37,37,37,37,37,37,37,37,37,37,37,0,37,37,0,37,37,37,37,37,37,50,0,0,37,37,37,37,0,37,53,0,53,0,53,0,0,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,40,28,28,40,40,28,40,28,40,28,0,40,28,40,40,40,28,28,28,40,28,40,40,40,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,28,40,56,56,40,40,28,40,28,40,28,40,28,40,28,0,0,0,39,25,27,39,25,27,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,39,25,27,39,25,27,39,39,25,27,39,39,39,39,39,25,27,39,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,39,39,39,39,25,27,39,25,27,39,25,27,39,25,27,39,25,27,0,0,0,0,49,48,49,48,49,48,49,48,49,48,49,48,49,48,49,49,48,48,49,48,48,49,48,49,48,49,48,49,48,48,49,48,49,49,49,48,48,48,49,49,48,49,48,49,48,49,48,49,48,49,48,49,48,49,48,48,48,48,49,48,49,48,49,48,49,48,49,48,49,48,49,48,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,47,47,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,66,67,68,69,70,71,72,73,74,75,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,47,66,68,76,80,84,85,47,87,47,80,81,82,47,75,47,67,68,69,71,73,76,77,79,83,84,85,86,47,87,47,70,72,76,78,79,80,81,82,83,84,85,86,47,66,67,68,69,70,71,72,73,74,75,76,77,78,79,81,82,83,84,86,47,87,47,87,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88],"f":"```````````````{{{b{c}}}{{b{d}}}{}}{{{b{fc}}}{{b{fd}}}{}}{{{b{c}}}{{b{h}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}``{j{{b{c}}}{}}{j{{b{fc}}}{}}{jl}{{{b{n}}{b{fA`}}}Ab}0{cc{}}``{{}j}{ce{}{}}{{{Ad{c}}}{{Ad{d}}}{}}{{{Af{c}}}{{Af{d}}}{}}{{{Ah{c}}}{{Ah{d}}}{}}{{{b{c}}}Aj{}}{c{{Al{e}}}{}{}}0{{{b{c}}}An{}}6```{{j{B`{j}}}{{Bb{c}}}Bd}`````````````{{{b{c}}Bf}l{}}000{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}{{{b{f{Bl{c}}}}Bj{b{c}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjcBj}{{Al{ln}}}Bd}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{c}}}{{b{d}}}{}}000{{{b{fc}}}{{b{fd}}}{}}000{{{b{f{Bl{c}}}}C`{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}C`{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}C`{b{Ch}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{c}}}{{b{e}}}{}{}}000{{{b{fc}}}{{b{fe}}}{}{}}000{{{b{Bh}}{b{{Cj{c}}}}}{{Al{ln}}}Cl}{{{b{{Bl{c}}}}{b{{Cj{c}}}}}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}{b{{Cj{Bj}}}}}{{Al{ln}}}Bn}{{{b{C`}}}C`}{{{b{Cn}}}Cn}{{{b{D`}}}D`}{{{b{{Bl{c}}}}}{{Bl{c}}}{BnDb}}{{{b{c}}{b{fe}}}l{}{}}000{{{b{c}}}l{}}000000{{{b{Dd}}}{{Al{{Bb{{Df{c}}}}n}}}Bn}{{{b{{Bl{c}}}}}{{Al{{Bb{{Df{c}}}}n}}}Bd}{{{b{Dd}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}}{{Al{{Df{c}}n}}}Bd}{{{b{Dd}}{b{c}}{b{c}}{b{c}}{b{{Cj{c}}}}{b{{Cj{c}}}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}{b{c}}{b{c}}{b{c}}{b{{Cj{c}}}}{b{{Cj{c}}}}}{{Al{{Df{c}}n}}}Bd}{{{b{Dd}}c{b{{Cj{c}}}}}{{Al{{Dh{{Bb{c}}{Df{c}}{Df{c}}}}n}}}Bn}{{{b{{Bl{c}}}}c{b{{Cj{c}}}}}{{Al{{Dh{{Bb{c}}{Df{c}}{Df{c}}}}n}}}Bd}{{{b{Dd}}c}{{Al{{Bb{c}}n}}}Bn}{{{b{{Bl{c}}}}c}{{Al{{Bb{c}}n}}}Bd}{{{b{Dd}}{b{c}}{b{c}}}{{Al{{Df{c}}n}}}Bn}{{{b{{Bl{c}}}}{b{c}}{b{c}}}{{Al{{Df{c}}n}}}Bd}989898;:98;:{{{b{f{Bl{c}}}}C`BjBj}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}C`{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{fBh}}Dl}{{Al{C`n}}}}{{{b{f{Bl{c}}}}{Dn{e}}}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{E`{e}}}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}e}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{E`{c}}}{{Al{Chn}}}Bd}{{{b{fBh}}c}{{Al{Bjn}}}Cl}{{{b{f{Bl{c}}}}c}{{Al{Bjn}}}Bn}54326543210{{{b{f{Bl{c}}}}{b{{Cj{{Dh{BjBjBj}}}}}}{b{{Cj{{Dh{BjBj}}}}}}}{{Al{ln}}}Bd}21{{}{{Bl{c}}}Bn}{j{{b{c}}}{}}000{j{{b{fc}}}{}}000{jl}000{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}e}{{Al{{Dj{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}e{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}321032{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}e}{{Al{{Cb{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}e}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Cb{e}}}}}{{Al{{Dn{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}e}{{Al{{Cf{e}}n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}e}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Cf{e}}}}}{{Al{{E`{e}}n}}}Bd{{Cd{c}}}}{{{b{{Bl{c}}}}{b{{Dj{e}}}}}{{Al{en}}}Bd{{Cd{c}}}}{{{b{fBh}}Bj}{{Al{ln}}}}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{fBh}}Bjc}{{Al{ln}}}Cl}{{{b{f{Bl{c}}}}Bjc}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{ln}}}Bd{{Cd{c}}}}{{{b{fBh}}BjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}{BdBd}}{{{b{f{Bl{c}}}}Bjc}{{Al{ln}}}{BdBd}}10{{{b{f{Bl{c}}}}Bjj}{{Al{ln}}}Bd}2121{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{ln}}}Bd}5{{{b{Cn}}{b{Cn}}}Dl}{{{b{D`}}{b{D`}}}Dl}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{Dd}}}{{Al{jn}}}}{{{b{{Bl{c}}}}}{{Al{jn}}}Bd}{{{b{Bh}}}C`}{{{b{f{Bl{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}D`}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}Bj{b{{Eb{e}}}}}{{Al{Chn}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{C`}}{b{fA`}}}Ab}{{{b{Cn}}{b{fA`}}}Ab}{{{b{D`}}{b{fA`}}}Ab}{{{b{{Bl{c}}}}{b{fA`}}}Ab{BnEh}}{C`Bj}{cc{}}000{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}{b{{Ej{c}}}}c}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}Bj{b{Ch}}}{{Al{Chn}}}Bd}{{{b{Cn}}{b{fc}}}lEl}{{{b{D`}}{b{fc}}}lEl}{{}j}000{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{Ad{En}}}{{Al{ln}}}Bn}{ce{}{}}000{{{Ad{c}}}{{Ad{d}}}{}}000{{{Af{c}}}{{Af{d}}}{}}00{{{Ah{c}}}{{Ah{d}}}{}}000{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Cb{e}}}}{b{{Cb{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Cf{e}}}}{b{{Cf{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}{b{{Dj{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}{b{{Dj{e}}}}}{{Al{C`n}}}Bd{{Cd{c}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{C`n}}}{BdBd}}{{{b{f{Bl{c}}}}Bjc}{{Al{C`n}}}{BdBd}}10{{{b{f{Bl{c}}}}Bjj}{{Al{C`n}}}Bd}2121{{{b{f{Bl{c}}}}{b{Ch}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{Ch}}{b{Ch}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}Bj}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}C`C`}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{C`}}}}}{{Al{C`n}}}Bd}{{{b{f{Bl{c}}}}C`}{{Al{C`n}}}Bd}2{{{b{f{Bl{c}}}}C`C`}{{Al{ln}}}Bd}{{{b{{Bl{c}}}}{b{{Bl{c}}}}}{{Al{{Bl{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{F`{c}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{Fb{c}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{{F`{c}}}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}21{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}j}{{Al{Chn}}}Bd}{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}>={{{b{f{Bl{c}}}}Bj{b{c}}}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjcBj}{{Al{ln}}}Bd}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{{Bl{c}}}}}ChBd}{{}{{Bl{c}}}Bn}{j{{Bl{c}}}Bn}{{{b{f{Bl{c}}}}{b{{Cj{{F`{c}}}}}}{b{{Cj{{Fb{c}}}}}}{b{{Fb{c}}}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}{b{{F`{c}}}}}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}{b{{F`{c}}}}}{{Al{{F`{c}}n}}}Bd}0{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bd}{{{b{Bh}}}j}{{{b{{Bl{c}}}}}jBn}10{{{b{{Bl{c}}}}}{{Al{jn}}}Bd}2121{{{b{Bh}}}Bj}{{{b{{Bl{c}}}}}BjBn}{{{b{fBh}}j}l}{{{b{f{Bl{c}}}}j}lBn}{{{b{{Bl{c}}}}{b{Ch}}}{{Al{{E`{c}}n}}}Bd}{{{b{f{Bl{c}}}}BjBj}{{Al{ln}}}Bd}{{{b{f{Bl{c}}}}Bj}{{Al{Bjn}}}Bd}{{{b{Bh}}}{{Al{{Bb{c}}n}}}Cl}{{{b{{Bl{c}}}}}{{Al{{Bb{c}}n}}}Bn}{{{b{f{Bl{c}}}}{b{{Ej{Bj}}}}{b{{Ej{c}}}}{b{{Ej{c}}}}cc}{{Al{ln}}}Bd}{{{b{{Bl{c}}}}}{{Al{jn}}}Bn}0{{{b{fBh}}Bj}{{Al{ln}}}}{{{b{f{Bl{c}}}}Bj}{{Al{ln}}}Bn}{{{b{Dd}}}{{Al{jn}}}}>{{{b{fBh}}BjBj}{{Al{Bjn}}}}{{{b{f{Bl{c}}}}BjBj}{{Al{Bjn}}}Bn}{{{b{fBh}}BjBjBj}{{Al{ln}}}}{{{b{f{Bl{c}}}}BjBjBj}{{Al{ln}}}Bn}{{{b{f{Bl{c}}}}{b{{Cj{Bj}}}}}{{Al{Bjn}}}Bd}{{{b{Bh}}}Dl}{{{b{{Bl{c}}}}}DlBn}{{{b{c}}}e{}{}}000{{{b{Bh}}}C`}{{{b{f{Bl{c}}}}Bjj}{{Al{Bjn}}}Bd}{{{b{f{Bl{c}}}}BjBjj}{{Al{ln}}}Bd}{c{{Al{e}}}{}{}}0000000{{{b{c}}}An{}}000{{{b{f{Bl{c}}}}Bjj}{{Al{{Bb{C`}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Cj{C`}}}}{b{Ch}}}{{Al{Chn}}}Bd}{{{b{f{Bl{c}}}}Bj{b{Ch}}}{{Al{Chn}}}Bd}{ce{}{}}000{{{b{Bh}}Bj}{{Al{cn}}}Cl}{{{b{{Bl{c}}}}Bj}{{Al{cn}}}Bn}{{{b{f{Bl{c}}}}Bj}{{b{fc}}}Bn}{{{b{Bh}}}Bj}{{{b{{Bl{c}}}}}BjBn}``````{{{b{c}}Bf}l{}}{{{b{c}}}{{b{d}}}{}}{{{b{fc}}}{{b{fd}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Dj{c}}}}}{{Dj{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}{{{b{c}}}l{}}{j{{b{c}}}{}}{j{{b{fc}}}{}}{jl}`{{{b{{Dj{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}{e{{Bb{c}}}Bd{{Cd{c}}}}{{}j}{ce{}{}}{{{Ad{c}}}{{Ad{d}}}{}}{{{Af{c}}}{{Af{d}}}{}}{{{Ah{c}}}{{Ah{d}}}{}}{{{b{{Dj{c}}}}}{{Bb{Bj}}}Bd}{{{b{Fd}}}{{Bb{c}}}Bd}`{{{b{{Cj{c}}}}}{{Al{en}}}Bd{{Cd{c}}}}{{{b{c}}}e{}{}}{c{{Al{e}}}{}{}}0{{{b{c}}}An{}}`9```````{{{b{c}}Bf}l{}}0{{{b{c}}}{{b{d}}}{}}0{{{b{fc}}}{{b{fd}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{fc}}}{{b{fe}}}{}{}}0{{{b{{E`{c}}}}}{{E`{c}}}{DbBd}}{{{b{Ch}}}Ch}{{{b{c}}{b{fe}}}l{}{}}0{{{b{c}}}l{}}000{{}{{E`{c}}}Bd}{j{{b{c}}}{}}0{j{{b{fc}}}{}}0{jl}0`{{{b{{E`{c}}}}{b{{E`{c}}}}}Dl{FfBd}}{{{b{Ch}}{b{Ch}}}Dl}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{{E`{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{Ch}}{b{fA`}}}Ab}{{{Fh{e}}}{{E`{c}}}{BdFj}{{Fl{}{{Ed{c}}}}}}{{{Eb{e}}}{{E`{c}}}Bd{{Ef{}{{Ed{c}}}}}}{cc{}}{{{Fn{e}}}{{E`{c}}}Bd{{Ef{}{{Ed{c}}}}}}1{{{b{{E`{c}}}}}cBd}{{{b{Ch}}}Bj}10{{}j}0{ce{}{}}0{{{Ad{c}}}{{Ad{d}}}{}}0{{{Af{c}}}{{Af{d}}}{}}0{{{Ah{c}}}{{Ah{d}}}{}}0{{{b{{E`{c}}}}}{{E`{c}}}Bd}{{{b{fG`}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}}{{Al{Chn}}}}{{{b{fG`}}{b{{Cj{Ch}}}}{b{{Cj{Bj}}}}j}{{Al{Chn}}}}{{{b{{E`{e}}}}}{{Bb{c}}}Bd{{Cd{c}}}}{{{b{c}}}e{}{}}0{c{{Al{e}}}{}{}}000{{{b{c}}}An{}}0::```{{{b{c}}Bf}l{}}00{{{b{c}}}{{b{d}}}{}}00{{{b{fc}}}{{b{fd}}}{}}00{e{{Al{lGb}}}Bd{{Gf{}{{Gd{{b{{Dn{c}}}}}}}}Gh}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{fc}}}{{b{fe}}}{}{}}00{{{b{{Dn{c}}}}}{{Al{lGb}}}Bd}{{{b{{Dn{c}}}}}{{Dn{c}}}{DbBd}}{{{b{{Cb{c}}}}}{{Cb{c}}}{DbBd}}{{{b{{Cf{c}}}}}{{Cf{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}00{{{b{c}}}l{}}000{{}{{Dn{c}}}Bd}{j{{b{c}}}{}}00{j{{b{fc}}}{}}00{{cGjGl}{{Al{{Dn{e}}Gb}}}GnBd}{jl}00{{{b{{Dn{c}}}}{b{{Dn{c}}}}}Dl{FfBd}}{{{b{c}}{b{e}}}Dl{}{}}00{{{b{{Dn{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{Cb{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{Cf{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}{{{Fh{e}}}{{Dn{c}}}Bd{{Fl{}{{Ed{c}}}}}}11{{}j}00{ce{}{}}00{{{Ad{c}}}{{Ad{d}}}{}}00{{{Af{c}}}{{Af{d}}}{}}00{{{Ah{c}}}{{Ah{d}}}{}}00{{{b{{Dn{e}}}}}{{Bb{c}}}Bd{{Cd{c}}}}{{{b{{Dn{c}}}}eGj}{{Al{lGb}}}BdH`}{{{b{{Dn{c}}}}Gj}jBd}{{{b{c}}}e{}{}}00{c{{Al{e}}}{}{}}00000{{{b{c}}}An{}}00999{{{Bl{c}}{Bl{c}}}{{Al{ln}}}Bd}```{{{b{c}}Bf}l{}}0{{{b{c}}}{{b{d}}}{}}0{{{b{fc}}}{{b{fd}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{fc}}}{{b{fe}}}{}{}}0{{{b{{Fb{c}}}}}{{Fb{c}}}{DbBd}}{{{b{{F`{c}}}}}{{F`{c}}}{DbBd}}{{{b{c}}{b{fe}}}l{}{}}0{{{b{c}}}l{}}000{{{b{{Fb{c}}}}}{{Dh{cc}}}Bd}{{{b{{F`{c}}}}}{{Dh{BjBj}}}Bd}{{{b{{F`{c}}}}{b{f{Bl{c}}}}}{{Al{Bjn}}}Bd}{{}{{Fb{c}}}{HbBd}}{{}{{F`{c}}}{HbBd}}{j{{b{c}}}{}}0{j{{b{fc}}}{}}0{jl}0{{{b{{F`{c}}}}{b{f{Bl{c}}}}{b{{F`{c}}}}}{{Al{ln}}}Bd}{{{b{{Fb{c}}}}{b{{Fb{c}}}}}Dl{FfBd}}{{{b{{F`{c}}}}{b{{F`{c}}}}}Dl{FfBd}}{{{b{c}}{b{e}}}Dl{}{}}00000{{{b{{Fb{c}}}}}cBd}{{{b{{Fb{c}}}}{b{fA`}}}Ab{EhBd}}{{{b{{F`{c}}}}{b{fA`}}}Ab{EhBd}}{cc{}}0{{}j}0{ce{}{}}0{{{Ad{c}}}{{Ad{d}}}{}}0{{{Af{c}}}{{Af{d}}}{}}0{{{Ah{c}}}{{Ah{d}}}{}}0{{{b{c}}j{B`{c}}}{{Al{{Fb{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{c}}j{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}{b{{Fb{c}}}}j{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{f{Bl{c}}}}Bjj{B`{c}}}{{Al{{F`{c}}n}}}Bd}{{{b{{Bl{c}}}}j{B`{c}}}{{F`{c}}}Bd}{{{b{{Fb{c}}}}}jBd}{{{b{{F`{c}}}}}jBd}{{{b{c}}}e{}{}}0{c{{Al{e}}}{}{}}000{{{b{{Fb{c}}}}}cBd}{{{b{{F`{c}}}}}cBd}{{{b{c}}}An{}}0??{{{b{{F`{c}}}}{b{{Bl{c}}}}}{{Al{cn}}}Bd}{{{b{{F`{c}}}}{b{{Bl{c}}}}}{{Al{{Fb{c}}n}}}Bd}9````````````````````````{{{b{c}}Bf}l{}}0000000000000000000000{{{b{c}}}{{b{d}}}{}}0000000000000000000000{{{b{fc}}}{{b{fd}}}{}}0000000000000000000000{{{b{c}}}{{b{e}}}{}{}}0000000000000000000000{{{b{fc}}}{{b{fe}}}{}{}}0000000000000000000000{{{b{{Hd{c}}}}}{{Hd{c}}}{DbCl}}{{{b{Hf}}}Hf}{{{b{{Hh{c}}}}}{{Hh{c}}}{DbCl}}{{{b{Hj}}}Hj}{{{b{Hl}}}Hl}{{{b{{Hn{c}}}}}{{Hn{c}}}Db}{{{b{I`}}}I`}{{{b{Ib}}}Ib}{{{b{Id}}}Id}{{{b{If}}}If}{{{b{{Ih{c}}}}}{{Ih{c}}}{DbCl}}{{{b{{Ij{c}}}}}{{Ij{c}}}{DbCl}}{{{b{{Il{c}}}}}{{Il{c}}}{DbCl}}{{{b{In}}}In}{{{b{{J`{c}}}}}{{J`{c}}}Ef}{{{b{{Jb{c}}}}}{{Jb{c}}}Ef}{{{b{{Jd{c}}}}}{{Jd{c}}}Ef}{{{b{{Jf{c}}}}}{{Jf{c}}}{DbBd}}{{{b{{Jh{c}}}}}{{Jh{c}}}{DbBd}}{{{b{Jj}}}Jj}{{{b{Jl}}}Jl}{{{b{{Jn{c}}}}}{{Jn{c}}}{DbCl}}{{{b{K`}}}K`}{{{b{c}}{b{fe}}}l{}{}}0000000000000000000000{{{b{c}}}l{}}0000000000000000000000{j{{b{c}}}{}}0000000000000000000000{j{{b{fc}}}{}}0000000000000000000000{{{Ad{En}}}{{Al{{Ad{e}}{Ad{En}}}}}{dCl}{{En{c}}}}{{{b{fEn}}}{{B`{{b{fe}}}}}{dCl}{{En{c}}}}{{{Ah{En}}}{{Al{{Ah{e}}{Ah{En}}}}}{dCl}{{En{c}}}}{{{b{En}}}{{B`{{b{e}}}}}{dCl}{{En{c}}}}{jl}0000000000000000000000{{{b{En}}{b{fA`}}}Ab}{{{b{{Hd{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{Hf}}{b{fA`}}}Ab}{{{b{{Hh{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{Hj}}{b{fA`}}}Ab}{{{b{Hl}}{b{fA`}}}Ab}{{{b{{Hn{c}}}}{b{fA`}}}AbEh}{{{b{I`}}{b{fA`}}}Ab}{{{b{Ib}}{b{fA`}}}Ab}{{{b{Id}}{b{fA`}}}Ab}{{{b{If}}{b{fA`}}}Ab}{{{b{{Jn{c}}}}{b{fA`}}}Ab{EhCl}}{{{b{K`}}{b{fA`}}}Ab}{cc{}}0000000000000000000000{{}j}0000000000000000000000{ce{}{}}0000000000000000000000{{{Ad{c}}}{{Ad{d}}}{}}0000000000000000000000{{{Af{c}}}{{Af{d}}}{}}0000000000000000000000{{{Ah{c}}}{{Ah{d}}}{}}0000000000000000000000{{{b{En}}}Dl}{{{b{En}}}{{b{Kb}}}}{{{b{{Hd{c}}}}}{{b{Kb}}}Cl}{{{b{Hf}}}{{b{Kb}}}}{{{b{{Hh{c}}}}}{{b{Kb}}}Cl}{{{b{Hj}}}{{b{Kb}}}}{{{b{Hl}}}{{b{Kb}}}}{{{b{{Hn{c}}}}}{{b{Kb}}}Cl}{{{b{I`}}}{{b{Kb}}}}{{{b{Ib}}}{{b{Kb}}}}{{{b{Id}}}{{b{Kb}}}}{{{b{If}}}{{b{Kb}}}}{{{b{{Ih{c}}}}}{{b{Kb}}}Cl}{{{b{{Ij{c}}}}}{{b{Kb}}}Cl}{{{b{{Il{c}}}}}{{b{Kb}}}Cl}{{{b{In}}}{{b{Kb}}}}{{{b{{J`{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jb{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}{{b{Kb}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jf{c}}}}}{{b{Kb}}}Bd}{{{b{{Jh{c}}}}}{{b{Kb}}}Bd}{{{b{Jj}}}{{b{Kb}}}}{{{b{Jl}}}{{b{Kb}}}}{{{b{{Jn{c}}}}}{{b{Kb}}}Cl}{{{b{K`}}}{{b{Kb}}}}{{{b{En}}}cCl}{{{b{{Hd{c}}}}}cCl}{{{b{{Hh{c}}}}}cCl}{{{b{{Ih{c}}}}}cCl}{{{b{{J`{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jh{c}}}}}cBd}{{{b{Jj}}}cCl}6{{{b{{Jn{c}}}}}cCl}73{{{b{{Jb{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{En}}}{{Ej{c}}}Cl}{{{b{If}}}{{Ej{c}}}Cl}1{{{b{Hf}}}{{Ej{c}}}Cl}{{{b{{Hh{c}}}}}{{Ej{c}}}Cl}{{{b{Hj}}}{{Ej{c}}}Cl}{{{b{{Hn{c}}}}}{{Ej{c}}}Cl}{{{b{Ib}}}{{Ej{c}}}Cl}{{{b{{Ih{c}}}}}{{Ej{c}}}Cl}{{{b{{Ij{c}}}}}{{Ej{c}}}Cl}{{{b{In}}}{{Ej{c}}}Cl}{{{b{{Jf{c}}}}}{{Ej{c}}}Bd}{{{b{{Jh{c}}}}}{{Ej{c}}}Bd}{{{b{Jj}}}{{Ej{c}}}Cl}{{{b{Jl}}}{{Ej{c}}}Cl}{{{b{En}}}cCl}{{{b{{Jn{c}}}}}cCl}?{{{b{Hl}}}{{Ej{c}}}Cl}{{{b{I`}}}{{Ej{c}}}Cl}:{{{b{{Il{c}}}}}{{Ej{c}}}Cl}9{{{b{{J`{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jb{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}{{Ej{c}}}Bd{{Ef{}{{Ed{c}}}}}};:987{{{b{{Hd{c}}}}}cCl}{{{b{Hf}}}cCl}{{{b{{Hh{c}}}}}cCl}{{{b{Hj}}}cCl}{{{b{Hl}}}cCl}{{{b{{Hn{c}}}}}cCl}{{{b{I`}}}cCl}{{{b{Ib}}}cCl}{{{b{Id}}}cCl}{{{b{If}}}cCl}{{{b{{Ih{c}}}}}cCl}{{{b{{Ij{c}}}}}cCl}{{{b{{Il{c}}}}}cCl}{{{b{In}}}cCl}{{{b{{Jb{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jd{e}}}}}cBd{{Ef{}{{Ed{c}}}}}}{{{b{{Jf{c}}}}}cBd}{{{b{{Jh{c}}}}}cBd}{{{b{Jl}}}cCl}{{{b{En}}}cCl}{{{b{{Jn{c}}}}}cCl}10{{{b{c}}}e{}{}}0000000000000000000000{c{{Al{e}}}{}{}}000000000000000000000000000000000000000000000{{{b{c}}}An{}}0000000000000000000000{ce{}{}}0000000000000000000000","D":"BMl","p":[[1,"reference"],[10,"Any",1281],[0,"mut"],[10,"Error",1282],[1,"usize"],[1,"unit"],[6,"CircuitError",0],[5,"Formatter",1283],[8,"Result",1283],[5,"Box",1284],[5,"Arc",1285],[5,"Rc",1286],[5,"String",1287],[6,"Result",1288],[5,"TypeId",1281],[6,"Option",1289],[5,"Vec",1290],[10,"PrimeField",1291],[5,"Private",1292],[10,"Circuit",44],[8,"Variable",44],[5,"PlonkCircuit",44],[10,"FftField",1293],[5,"BoolVar",44],[5,"EmulatedSWPointVariable",478,1294],[10,"EmulationConfig",366,1295],[5,"EmulatedTEPointVariable",478,1296],[5,"PointVariable",402],[1,"slice"],[10,"Field",1297],[6,"PlonkType",44],[6,"MergeableCircuitType",44],[10,"Clone",1298],[10,"Arithmetization",44],[5,"DensePolynomial",1299],[1,"tuple"],[5,"EmulatedVariable",366,1295],[1,"bool"],[5,"SWPoint",478,1294],[5,"TEPoint",402],[5,"Affine",1300],[17,"BaseField"],[10,"TECurveConfig",1301],[10,"Debug",1283],[1,"array"],[10,"Hasher",1302],[10,"Gate",642],[5,"FpElemVar",565],[5,"FpElem",565],[10,"SerializableEmulatedStruct",366,1295],[10,"PartialEq",1303],[5,"Affine",1304],[10,"SWToTEConParam",402,1305],[10,"SWCurveConfig",1306],[5,"Projective",1307],[10,"MultiScalarMultiplicationCircuit",402,1308],[6,"SerializationError",1309],[17,"Item"],[10,"Iterator",1310],[10,"Send",1311],[6,"Compress",1312],[6,"Validate",1312],[10,"Read",1313],[10,"Write",1313],[10,"Default",1314],[5,"ConstantGate",642,1315],[5,"AdditionGate",642,1315],[5,"ConstantAdditionGate",642,1315],[5,"SubtractionGate",642,1315],[5,"MultiplicationGate",642,1315],[5,"ConstantMultiplicationGate",642,1315],[5,"BoolGate",642,1315],[5,"EqualityGate",642,1315],[5,"IoGate",642,1315],[5,"FifthRootGate",642,1315],[5,"QuadPolyGate",642,1315],[5,"LinCombGate",642,1315],[5,"MulAddGate",642,1315],[5,"CondSelectGate",642,1315],[5,"EdwardsCurveEquationGate",642,1316],[5,"CurvePointXAdditionGate",642,1316],[5,"CurvePointYAdditionGate",642,1316],[5,"QuaternaryPointSelectXGate",642,1316],[5,"QuaternaryPointSelectYGate",642,1316],[5,"LogicOrGate",642,1317],[5,"LogicOrOutputGate",642,1317],[5,"LookupGate",642,1318],[5,"PaddingGate",642],[1,"str"]],"r":[[367,1295],[368,1295],[370,1295],[386,1295],[395,1295],[403,1308],[407,1305],[478,1294],[479,1296],[480,1294],[642,1315],[643,1315],[644,1315],[645,1315],[646,1315],[647,1315],[648,1316],[649,1316],[650,1316],[651,1315],[652,1315],[654,1315],[655,1315],[656,1317],[657,1317],[658,1318],[659,1315],[660,1315],[662,1315],[663,1316],[664,1316],[665,1315]],"b":[[25,"impl-Debug-for-CircuitError"],[26,"impl-Display-for-CircuitError"],[445,"impl-From%3CAffine%3CP%3E%3E-for-TEPoint%3CF%3E"],[446,"impl-From%3CAffine%3CP%3E%3E-for-TEPoint%3CF%3E"],[448,"impl-From%3CProjective%3CP%3E%3E-for-TEPoint%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAJMDWgAQAAQAFwAEAB8AAAAhAAcAOgADAD8AAABDAAAARQAHAFAABwBZAAAAXAAOAGwAAABuAAAAcAAAAHIAAAB0AAAAdgAAAHgAAAB6AAAAfAAAAH4AAACAAAAAggAAAIsAAACWAAAAmQANALoAAAC8AAAAwQAAAM8ABwDYAAAA3QAEAOgABQDzAAoAHgEBACEBAAAnAQAAMQEAADMBAAA2AQAAOAEAADwBAABBAQAARgEAAEgBAABKAQAATAEAAE8BBABXAQsAZgEDAGsBAAB1AQoAgQEAAIQBAACGAQIAjQEDAJIBAACaARgAtAELAMEBAADHAQEAywEFANQBCgDiASwAEAIAABMCAgAZAhoAOAIRAE0CBwBWAgcAXwIBAGMCAQBnAgUAdAIFAHwCAwCbAuUAhQMjAMADFgDuA0QANQQWAE0EBQBUBAAAVgQCAFoEAABcBAsAaQQAAGsECwB4BBIAjAQAAI4EcwA="}],\ +["jf_rescue",{"t":"TTSTTTTFPFSGFKFSNNNNNNNNNNNNNNNNNNNNNNNNCCNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNCNNNCNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNFFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["A","A_INV","CRHF_RATE","INIT_VEC_LE","KEY_INJECTION_LE","MDS_LE","PERMUTATION_ROUND_KEYS","PRP","ParameterError","Permutation","ROUNDS","RescueError","RescueMatrix","RescueParameter","RescueVector","STATE_SIZE","as_error_source","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","commitment","crhf","default","default","default","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","elems","eq","eq","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","init","init","init","init","init","init_vec_ref","into","into","into","into","into","is_empty","key_injection_vec_ref","key_schedule","len","linear","mds_matrix_ref","mds_matrix_ref","non_linear","prf","prp","prp_with_round_keys","round_keys_ref","sponge","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","vec","vzip","vzip","vzip","vzip","vzip","zero","FixedLengthRescueCommitment","borrow","borrow_mut","clone","clone_into","clone_to_uninit","commit","default","deref","deref_mut","drop","eq","equivalent","equivalent","fmt","from","init","into","to_owned","try_from","try_into","type_id","verify","vzip","FixedLengthRescueCRHF","RescueCRHF","VariableLengthRescueCRHF","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","evaluate","evaluate","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","sponge_no_padding","sponge_with_bit_padding","sponge_with_zero_padding","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","RescuePRF","borrow","borrow_mut","clone","clone_into","clone_to_uninit","deref","deref_mut","drop","evaluate","fmt","from","init","into","to_owned","try_from","try_into","type_id","vzip","RescueSponge","absorb","borrow","borrow_mut","clone","clone_into","clone_to_uninit","default","deref","deref_mut","drop","fmt","fork","from","from_state","init","into","into_state","new","squeeze_bits","squeeze_bytes","squeeze_field_elements","squeeze_field_elements_with_sizes","squeeze_native_field_elements","squeeze_native_field_elements_with_sizes","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"jf_rescue"],[134,"jf_rescue::commitment"],[158,"jf_rescue::crhf"],[217,"jf_rescue::prf"],[236,"jf_rescue::sponge"],[266,"core::error"],[267,"core::clone"],[268,"core::default"],[269,"alloc::vec"],[270,"ark_ff::fields::prime"],[271,"core::cmp"],[272,"core::fmt"],[273,"core::marker"],[274,"alloc::string"],[275,"core::result"],[276,"core::any"],[277,"core::option"],[278,"core::borrow"],[279,"ark_crypto_primitives::sponge::absorb"],[280,"ark_crypto_primitives::sponge"]],"i":[11,11,0,11,11,11,11,0,15,0,0,0,0,0,0,0,15,15,4,6,7,8,15,4,6,7,8,4,6,7,8,4,6,7,8,4,4,6,7,8,0,0,4,7,8,15,4,6,7,8,15,4,6,7,8,15,4,6,7,8,4,15,4,15,15,4,4,8,15,15,4,6,7,8,15,4,4,4,6,6,7,8,8,15,4,6,7,8,7,15,4,6,7,8,6,7,7,6,4,7,8,4,0,7,7,8,0,4,6,7,8,15,15,4,6,7,8,15,4,6,7,8,15,4,6,7,8,6,15,4,6,7,8,4,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,0,0,0,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,31,32,30,31,32,30,31,32,30,31,32,30,31,32,30,30,30,30,31,32,30,31,32,30,31,32,30,31,32,30,31,32,0,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,0,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34],"f":"````````````````{{{b{c}}}{{b{d}}}{}}{{{b{c}}}{{b{e}}}{}{}}0000{{{b{fc}}}{{b{fe}}}{}{}}0000{{{b{{h{c}}}}}{{h{c}}}j}{{{b{{l{c}}}}}{{l{c}}}j}{{{b{{n{c}}}}}{{n{c}}}j}{{{b{{A`{c}}}}}{{A`{c}}}j}{{{b{c}}{b{fe}}}Ab{}{}}000{{{b{c}}}Ab{}}0000``{{}{{h{c}}}Ad}{{}{{n{c}}}Af}{{}{{A`{c}}}Af}{Ah{{b{c}}}{}}0000{Ah{{b{fc}}}{}}0000{AhAb}0000{{{b{{h{c}}}}}{{Aj{c}}}Al}{{{b{An}}{b{An}}}B`}{{{b{{h{c}}}}{b{{h{c}}}}}B`Bb}{{{b{c}}{b{e}}}B`{}{}}000{{{b{{A`{c}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{An}}{b{fBd}}}Bf}0{{{b{{h{c}}}}{b{fBd}}}BfBh}{{{b{{l{c}}}}{b{fBd}}}BfBh}{{{b{{n{c}}}}{b{fBd}}}BfBh}{{{b{{A`{c}}}}{b{fBd}}}BfBh}{cc{}}{{{b{{Bj{c}}}}}{{h{c}}}Bl}{{{b{{Bn{c}}}}}{{h{c}}}Bl}22{{{b{{Bn{{h{c}}}}}}}{{l{c}}}Al}33{{{n{c}}}{{A`{c}}}Af}{{}Ah}0000{{{b{{n{c}}}}}{{b{{h{c}}}}}Af}{ce{}{}}0000{{{b{{l{c}}}}}B`Al}{{{b{{n{c}}}}}{{b{{Bj{{h{c}}}}}}}Af}{{{b{{n{c}}}}{b{{h{c}}}}}{{Aj{{h{c}}}}}Af}{{{b{{l{c}}}}}AhAl}{{{b{f{h{c}}}}{b{{l{c}}}}{b{{h{c}}}}}AbAl}{{{b{{n{c}}}}}{{b{{l{c}}}}}Af}{{{b{{A`{c}}}}}{{b{{l{c}}}}}Af}{{{b{f{h{c}}}}{b{{l{c}}}}{b{{h{c}}}}}AbAf}`{{{b{{n{c}}}}{b{{h{c}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{{n{c}}}}{b{{Bj{{h{c}}}}}}{b{{h{c}}}}}{{h{c}}}Af}{{{b{{A`{c}}}}}{{b{{Bj{{h{c}}}}}}}Af}`{{{b{c}}}e{}{}}000{{{b{c}}}C`{}}{c{{Cb{e}}}{}{}}000000000{{{b{c}}}Cd{}}0000{{{b{{l{c}}}}Ah}{{h{c}}}Al}{ce{}{}}0000{{}{{h{c}}}Al}`{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Cf{c}}}}}{{Cf{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}{{{b{c}}}Ab{}}{{e{Ch{{b{g}}}}}{{Cb{ik}}}{}{{Cj{c}}}{}{}{}}{{}{{Cf{c}}}{AdAf}}{Ah{{b{c}}}{}}{Ah{{b{fc}}}{}}{AhAb}{{{b{{Cf{c}}}}{b{{Cf{c}}}}}B`{BbAf}}{{{b{c}}{b{e}}}B`{}{}}0{{{b{{Cf{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}{{}Ah}{ce{}{}}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Cd{}}{{e{Ch{{b{g}}}}{b{i}}}{{Cb{{Cb{AbAb}}k}}}{}{{Cj{c}}}{}{}{}}4```{{{b{c}}}{{b{e}}}{}{}}00{{{b{fc}}}{{b{fe}}}{}{}}00{{{b{{Cl{c}}}}}{{Cl{c}}}{jAf}}{{{b{{Cn{c}}}}}{{Cn{c}}}{jAf}}{{{b{{D`{c}}}}}{{D`{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}00{{{b{c}}}Ab{}}00{Ah{{b{c}}}{}}00{Ah{{b{fc}}}{}}00{AhAb}00{e{{Cb{gi}}}{}{{Cj{c}}}{}{}}0{{{b{{Cl{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{Cn{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{D`{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}00{{}Ah}00{ce{}{}}00{{{b{{Bj{c}}}}Ah}{{Cb{{Aj{c}}An}}}Af}{{{b{{Bj{c}}}}Ah}{{Aj{c}}}Af}0{{{b{c}}}e{}{}}00{c{{Cb{e}}}{}{}}00000{{{b{c}}}Cd{}}00555`{{{b{c}}}{{b{e}}}{}{}}{{{b{fc}}}{{b{fe}}}{}{}}{{{b{{Db{c}}}}}{{Db{c}}}{jAf}}{{{b{c}}{b{fe}}}Ab{}{}}{{{b{c}}}Ab{}}{Ah{{b{c}}}{}}{Ah{{b{fc}}}{}}{AhAb}{{ei}{{Cb{km}}}{}{{Cj{c}}}{}{{Cj{g}}}{}{}}{{{b{{Db{c}}}}{b{fBd}}}Bf{BhAf}}{cc{}}{{}Ah}{ce{}{}}?>>=0`{{{b{f{Dd{c}}}}{b{e}}}Ab{AfAl}Df}=<{{{b{{Dd{c}}}}}{{Dd{c}}}{jAf}};:{{}{{Dd{c}}}{AdAf}}:98{{{b{{Dd{c}}}}{b{fBd}}}Bf{BhAf}}{{{b{{Dd{c}}}}{b{{Bj{Dh}}}}}{{Dd{c}}}{AfAl}}7{{c{b{e}}}{{Dd{g}}}{}{}Af}76{{{Dd{c}}}eAf{}}{{{b{c}}}{{Dd{e}}}{}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{B`}}}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{Dh}}}{AfAl}}{{{b{f{Dd{c}}}}Ah}{{Aj{e}}}{AfAl}Al}{{{b{f{Dd{c}}}}{b{{Bj{Dj}}}}}{{Aj{e}}}{AfAl}Al}{{{b{f{Dd{c}}}}Ah}{{Aj{c}}}Af}{{{b{f{Dd{c}}}}{b{{Bj{Dj}}}}}{{Aj{c}}}Af}{{{b{c}}}e{}{}}{c{{Cb{e}}}{}{}}0{{{b{c}}}Cd{}}{ce{}{}}","D":"In","p":[[1,"reference"],[10,"Error",266],[0,"mut"],[5,"RescueVector",0],[10,"Clone",267],[5,"RescueMatrix",0],[5,"PRP",0],[5,"Permutation",0],[1,"unit"],[10,"Default",268],[10,"RescueParameter",0],[1,"usize"],[5,"Vec",269],[10,"PrimeField",270],[6,"RescueError",0],[1,"bool"],[10,"PartialEq",271],[5,"Formatter",272],[8,"Result",272],[10,"Debug",272],[1,"slice"],[10,"Copy",273],[1,"array"],[5,"String",274],[6,"Result",275],[5,"TypeId",276],[5,"FixedLengthRescueCommitment",134],[6,"Option",277],[10,"Borrow",278],[5,"RescueCRHF",158],[5,"FixedLengthRescueCRHF",158],[5,"VariableLengthRescueCRHF",158],[5,"RescuePRF",217],[5,"RescueSponge",236],[10,"Absorb",279],[1,"u8"],[6,"FieldElementSize",280]],"r":[],"b":[[68,"impl-Debug-for-RescueError"],[69,"impl-Display-for-RescueError"],[75,"impl-From%3C%26%5BF%5D%3E-for-RescueVector%3CF%3E"],[76,"impl-From%3C%26%5BF;+STATE_SIZE%5D%3E-for-RescueVector%3CF%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAALsAFwARABcAKwARAD4ABQBFAAUATAABAFAAAABTAAUAbAATAIEABACIAA0AlwAAAJkABQCiABcAvAACAMIAAgDLAA4A2wAJAOYAAADoAAQA7wAJAPsAAQD+AAAABgEEAA=="}],\ +["jf_signature",{"t":"KTRPRRGKRPRMMNNCNNNNNNNMMMMNNNNMNSSSSSSSSCSSSSSSS","n":["AggregateableSignatureSchemes","CS_ID","MessageUnit","ParameterError","PublicParameter","Signature","SignatureError","SignatureScheme","SigningKey","VerificationError","VerificationKey","aggregate","aggregate_verify","borrow","borrow_mut","constants","eq","equivalent","fmt","fmt","from","from","into","key_gen","multi_sig_verify","param_gen","sign","to_string","try_from","try_into","type_id","verify","vzip","BLS_SIG_COMPRESSED_PK_SIZE","BLS_SIG_COMPRESSED_SIGNATURE_SIZE","BLS_SIG_PK_SIZE","BLS_SIG_SIGNATURE_SIZE","BLS_SIG_SK_SIZE","CS_ID_BLS_BN254","CS_ID_BLS_MIN_SIG","CS_ID_SCHNORR","tag","BLS_SIG","BLS_SIGNING_KEY","BLS_VER_KEY","SCHNORR_KEY_PAIR","SCHNORR_SIG","SCHNORR_SIGNING_KEY","SCHNORR_VER_KEY"],"q":[[0,"jf_signature"],[33,"jf_signature::constants"],[42,"jf_signature::constants::tag"],[49,"core::result"],[50,"core::convert"],[51,"core::fmt"],[52,"blst"],[53,"rand_core"],[54,"core::option"],[55,"alloc::string"],[56,"core::any"]],"i":[0,18,18,3,18,18,0,0,18,3,18,19,19,3,3,0,3,3,3,3,3,3,3,18,19,18,18,3,3,3,3,18,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"f":"```````````{{{b{c}}{b{{d{e}}}}{b{{d{g}}}}}{{h{gf}}}{}{}{}}{{{b{c}}{b{{d{e}}}}{b{{d{i}}}}{b{k}}}{{h{jf}}}{}{}{}{{l{{d{g}}}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{nc}}}{{b{ne}}}{}{}}`{{{b{f}}{b{f}}}A`}{{{b{c}}{b{e}}}A`{}{}}{{{b{f}}{b{nAb}}}Ad}0{Aff}{cc{}}{ce{}{}}{{{b{c}}{b{ne}}}{{h{{Ah{gi}}f}}}{}{AjAl}{}{}}{{{b{c}}{b{{d{e}}}}{b{{d{g}}}}{b{i}}}{{h{jf}}}{}{}{}{}}{{{An{{b{nc}}}}}{{h{ef}}}{AjAl}{}}{{{b{c}}{b{e}}i{b{nk}}}{{h{mf}}}{}{}{}{{l{{d{g}}}}}{AjAl}{}}{{{b{c}}}B`{}}{c{{h{e}}}{}{}}0{{{b{c}}}Bb{}}{{{b{c}}{b{e}}i{b{k}}}{{h{jf}}}{}{}{}{{l{{d{g}}}}}{}}8````````````````","D":"Dl","p":[[1,"reference"],[1,"slice"],[6,"SignatureError",0],[6,"Result",49],[1,"unit"],[10,"AsRef",50],[0,"mut"],[1,"bool"],[5,"Formatter",51],[8,"Result",51],[6,"BLST_ERROR",52],[1,"tuple"],[10,"CryptoRng",53],[10,"RngCore",53],[6,"Option",54],[5,"String",55],[5,"TypeId",56],[10,"SignatureScheme",0],[10,"AggregateableSignatureSchemes",0]],"r":[],"b":[[18,"impl-Debug-for-SignatureError"],[19,"impl-Display-for-SignatureError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAAsABAAOAAEAEQAEABwAAwAhAAAA"}],\ +["jf_utils",{"t":"FNNHHCHHNNNQQNHHHHHHNNHHNNHHCCNHQQQQNNNNHHHHFNNNNNNNNNNNHHHNNNNN","n":["CanonicalBytes","borrow","borrow_mut","bytes_from_field_elements","bytes_to_field_elements","canonical","challenge_bit_len","compute_len_to_next_multiple","deref","deref_mut","deserialize","deserialize_canonical_bytes","deserialize_canonical_bytes","drop","field_bit_len","field_byte_len","field_switching","fq_to_fr","fq_to_fr_with_mask","fr_to_fq","from","from","hadamard_product","hash_to_field","init","into","multi_pairing","pad_with_zeros","par_utils","reed_solomon_code","serialize","test_rng","test_serde_default","test_serde_default","to_bytes","to_bytes","try_from","try_into","type_id","vzip","deserialize","serialize","parallelizable_chunks","parallelizable_slice_iter","RSCodeError","as_error_source","borrow","borrow_mut","deref","deref_mut","drop","fmt","fmt","from","init","into","reed_solomon_erasure_decode","reed_solomon_erasure_decode_rou","reed_solomon_erasure_encode","to_string","try_from","try_into","type_id","vzip"],"q":[[0,"jf_utils"],[40,"jf_utils::canonical"],[42,"jf_utils::par_utils"],[44,"jf_utils::reed_solomon_code"],[64,"alloc::vec"],[65,"ark_ff::fields"],[66,"core::borrow"],[67,"jf_utils::serialize"],[68,"core::result"],[69,"serde::de"],[70,"ark_ff::fields::prime"],[71,"ark_serialize"],[72,"alloc::string"],[73,"core::convert"],[74,"ark_ec::pairing"],[75,"serde::ser"],[76,"rand::rngs::std"],[77,"core::any"],[78,"core::slice::iter"],[79,"core::error"],[80,"core::fmt"],[81,"core::iter::traits::collect"],[82,"ark_poly::domain::radix2"],[83,"ark_ff::fields::fft_friendly"],[84,"core::iter::traits::iterator"],[85,"jf_utils::conversion"],[86,"jf_utils::multi_pairing"],[87,"jf_utils::serialize::canonical"]],"i":[0,9,9,0,0,0,0,0,9,9,9,0,0,9,0,0,0,0,0,0,9,9,0,0,9,9,0,0,0,0,9,0,0,0,0,0,9,9,9,9,0,0,0,0,0,26,26,26,26,26,26,26,26,26,26,26,0,0,0,26,26,26,26,26],"f":"`{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{e{{h{f}}}j{{n{{l{c}}}}}}{c{{h{e}}}{{n{{l{f}}}}}j}`{{}A`}{{A`A`}A`}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{c{{Ad{Ab}}}Af}``{A`Ah}55{{{b{c}}}eAjAj}{{{b{c}}}{}Aj}1{bcAj}{cc{}}{cAbAl}{{ei}{{Ad{{h{g}}An}}}{}{{B`{{l{c}}}}}{}{{B`{{l{g}}}}}}{ce{{B`{{l{f}}}}}Aj}<{ce{}{}}{{{b{l}}{b{l}}}{{Bb{c}}}Bd}{{{b{d{h{c}}}}A`}Ahj}``{{{b{Ab}}c}AdBf}{{}Bh}````{c{{Ad{e}}}{}{}}0{{{b{c}}}Bj{}}6{c{{Ad{e}}}AfBl}{{{b{c}}e}AdAlBf}{{{b{{l{c}}}}A`}{{Bn{c}}}{}}{{{b{{l{c}}}}}{{C`{c}}}{}}`{{{b{c}}}{{b{Cb}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{A`{{b{c}}}{}}{A`{{b{dc}}}{}}{A`Ah}{{{b{Cd}}{b{dCf}}}Ch}0{cc{}}{{}A`}{ce{}{}}{{cA`}{{Ad{{h{e}}Cd}}}Cjj}{{cA`{b{{Cl{e}}}}}{{Ad{{h{e}}Cd}}}CjCn}{{cA`}{{`{{Db{}{{D`{e}}}}}}}Cjj}{{{b{c}}}An{}}{c{{Ad{e}}}{}{}}0{{{b{c}}}Bj{}}6","D":"Bn","p":[[1,"reference"],[0,"mut"],[1,"u8"],[5,"Vec",64],[10,"Field",65],[1,"slice"],[10,"Borrow",66],[1,"usize"],[5,"CanonicalBytes",0,67],[6,"Result",68],[10,"Deserializer",69],[1,"unit"],[10,"PrimeField",70],[10,"CanonicalSerialize",71],[5,"String",72],[10,"AsRef",73],[5,"PairingOutput",74],[10,"Pairing",74],[10,"Serializer",75],[5,"StdRng",76],[5,"TypeId",77],[10,"CanonicalDeserialize",71],[5,"Chunks",78],[5,"Iter",78],[10,"Error",79],[5,"RSCodeError",44],[5,"Formatter",80],[8,"Result",80],[10,"IntoIterator",81],[5,"Radix2EvaluationDomain",82],[10,"FftField",83],[17,"Item"],[10,"Iterator",84]],"r":[[0,67],[3,85],[4,85],[5,67],[16,85],[17,85],[18,85],[19,85],[23,85],[26,86],[40,87],[41,87]],"b":[[51,"impl-Display-for-RSCodeError"],[52,"impl-Debug-for-RSCodeError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACkACgACAAEABwAKABYAAAAZAAAAHAAAAB8AAwAlAAcALgAHADcAAAA8AAQA"}],\ +["jf_vdf",{"t":"RRRRKFNNNNNNNNMNNNNNCMNNNNMNTFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Input","Output","Proof","PublicParameter","VDF","VDFError","borrow","borrow_mut","deref","deref_mut","drop","eq","equivalent","equivalent","eval","fmt","fmt","from","init","into","minroot","setup","to_string","try_from","try_into","type_id","verify","vzip","EXP_COEF","MinRoot","MinRootElement","MinRootField","MinRootPP","batch_check","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","check","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","clone_to_uninit","cmp","cmp","default","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize_with_mode","deserialize_with_mode","difficulty","drop","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","eval","fmt","fmt","from","from","from","from","init","init","init","into","into","into","partial_cmp","partial_cmp","serialize_with_mode","serialize_with_mode","serialized_size","serialized_size","setup","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip"],"q":[[0,"jf_vdf"],[28,"jf_vdf::minroot"],[108,"core::result"],[109,"core::fmt"],[110,"core::option"],[111,"rand_core"],[112,"alloc::string"],[113,"core::any"],[114,"ark_serialize::error"],[115,"core::iter::traits::iterator"],[116,"core::marker"],[117,"core::clone"],[118,"core::cmp"],[119,"core::default"],[120,"ark_serialize"],[121,"std::io"],[122,"ark_ec"]],"i":[37,37,37,37,0,0,5,5,5,5,5,5,5,5,37,5,5,5,5,5,0,37,5,5,5,5,37,5,22,0,0,0,0,19,23,38,19,23,38,19,23,19,23,19,23,19,23,19,19,23,23,19,23,19,23,38,19,23,38,19,23,19,23,19,38,19,23,19,23,19,19,23,23,38,19,23,38,19,23,23,38,19,23,38,19,23,19,23,19,23,19,23,38,19,23,38,19,23,38,19,23,38,19,23,38,38,19,23],"f":"``````{{{b{c}}}{{b{e}}}{}{}}{{{b{dc}}}{{b{de}}}{}{}}{f{{b{c}}}{}}{f{{b{dc}}}{}}{fh}{{{b{j}}{b{j}}}l}{{{b{c}}{b{e}}}l{}{}}0{{{b{c}}{b{e}}}{{A`{{n{gi}}j}}}{}{}{}{}}{{{b{j}}{b{dAb}}}Ad}0{cc{}}{{}f}{ce{}{}}`{{Af{Ah{{b{dc}}}}}{{A`{ej}}}{AjAl}{}}{{{b{c}}}An{}}{c{{A`{e}}}{}{}}0{{{b{c}}}B`{}}{{{b{c}}{b{e}}{b{g}}{b{i}}}{{A`{{A`{hh}}j}}}{}{}{}{}}5`````{c{{A`{hBb}}}{{Bh{}{{Bd{{b{Bf}}}}}}Bj}}{e{{A`{hBb}}}Bl{{Bh{}{{Bd{{b{{Bn{c}}}}}}}}Bj}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{dc}}}{{b{de}}}{}{}}00{{{b{Bf}}}{{A`{hBb}}}}{{{b{{Bn{c}}}}}{{A`{hBb}}}Bl}{{{b{Bf}}}Bf}{{{b{{Bn{c}}}}}{{Bn{c}}}{C`Bl}}{{{b{c}}{b{de}}}h{}{}}0{{{b{c}}}h{}}000{{{b{Bf}}{b{Bf}}}Cb}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}Cb{CdBl}}{{}Bf}{{}{{Bn{c}}}{CfBl}}{f{{b{c}}}{}}00{f{{b{dc}}}{}}00{{cChCj}{{A`{BfBb}}}Cl}{{cChCj}{{A`{{Bn{e}}Bb}}}ClBl}`{fh}00{{{b{Bf}}{b{Bf}}}l}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}l{CnBl}}{{{b{c}}{b{e}}}l{}{}}000{{{b{c}}{b{e}}}{{A`{{n{gi}}j}}}{}{}{}{}}{{{b{Bf}}{b{dAb}}}Ad}{{{b{{Bn{c}}}}{b{dAb}}}Ad{D`Bl}}{cc{}}00{e{{Bn{c}}}Bl{{Dd{}{{Db{c}}}}}}{{}f}00{ce{}{}}00{{{b{Bf}}{b{Bf}}}{{Ah{Cb}}}}{{{b{{Bn{c}}}}{b{{Bn{c}}}}}{{Ah{Cb}}}{DfBl}}{{{b{Bf}}cCh}{{A`{hBb}}}Dh}{{{b{{Bn{c}}}}eCh}{{A`{hBb}}}BlDh}{{{b{Bf}}Ch}f}{{{b{{Bn{c}}}}Ch}fBl}{{Af{Ah{{b{dc}}}}}{{A`{ej}}}{AjAl}{}}{{{b{c}}}e{}{}}0{c{{A`{e}}}{}{}}00000{{{b{c}}}B`{}}00{{{b{c}}{b{e}}{b{g}}{b{i}}}{{A`{{A`{hh}}j}}}{}{}{}{}};;;","D":"Cb","p":[[1,"reference"],[0,"mut"],[1,"usize"],[1,"unit"],[5,"VDFError",0],[1,"bool"],[1,"tuple"],[6,"Result",108],[5,"Formatter",109],[8,"Result",109],[1,"u64"],[6,"Option",110],[10,"CryptoRng",111],[10,"RngCore",111],[5,"String",112],[5,"TypeId",113],[6,"SerializationError",114],[17,"Item"],[5,"MinRootPP",28],[10,"Iterator",115],[10,"Send",116],[10,"MinRootField",28],[5,"MinRootElement",28],[10,"Clone",117],[6,"Ordering",118],[10,"Ord",118],[10,"Default",119],[6,"Compress",120],[6,"Validate",120],[10,"Read",121],[10,"PartialEq",118],[10,"Debug",109],[17,"BaseField"],[10,"AffineRepr",122],[10,"PartialOrd",118],[10,"Write",121],[10,"VDF",0],[5,"MinRoot",28]],"r":[],"b":[[15,"impl-Debug-for-VDFError"],[16,"impl-Display-for-VDFError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAFMACQAHAAcAEAABABMAAAAXAAMAHAAAACIAHQBBAAsAUAADAFcAFQA="}],\ +["jf_vid",{"t":"PRRPPPRFGIKNCNNNNNNNNNNNNOMONNNNNMNNNNNNNNNNNMMMNNNNNNNNNNNMCCMNONNNNNNNNMNNIFFKFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNMNNNNNCNNCNNNNNNNNNNNNNNNNNNNNNNNFFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNKFNNNNNNNNOONNNNNNNNNMOMONNNNNKRMM","n":["Argument","Commit","Common","Err","Internal","Ok","Share","VidDisperse","VidError","VidResult","VidScheme","__clone_box","advz","as_any","as_any","as_any_mut","as_any_mut","as_error_source","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","clone_to_uninit","commit","commit_only","common","deref","deref","deref_mut","deref_mut","deserialize","disperse","drop","drop","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","get_multiplicity","get_num_storage_nodes","get_payload_byte_len","hash","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","is_consistent","payload_prover","precomputable","recover_payload","serialize","shares","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","verify_share","vzip","vzip","Advz","AdvzInternal","Common","MaybeGPU","Share","__clone_box","__clone_box","__clone_box","as_any","as_any","as_any","as_any_mut","as_any_mut","as_any_mut","batch_check","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","check","clone","clone","clone","clone_into","clone_into","clone_into","clone_to_uninit","clone_to_uninit","clone_to_uninit","commit_only","commit_only_precompute","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_with_mode","disperse","disperse_precompute","drop","drop","drop","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","from","from","from","get_multiplicity","get_num_storage_nodes","get_payload_byte_len","hash","hash","init","init","init","into","into","into","into_any","into_any","into_any","into_any_arc","into_any_arc","into_any_arc","into_any_rc","into_any_rc","into_any_rc","is_consistent","kzg_batch_commit","kzg_batch_commit","new","new","payload_proof","payload_proof","payload_prover","payload_verify","payload_verify","precomputable","recover_payload","serialize","serialize","serialize_with_mode","serialized_size","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify_share","vzip","vzip","vzip","with_multiplicity","with_multiplicity","LargeRangeProof","SmallRangeProof","__clone_box","__clone_box","as_any","as_any","as_any_mut","as_any_mut","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","clone_to_uninit","clone_to_uninit","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","eq","equivalent","equivalent","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","init","init","into","into","into_any","into_any","into_any_arc","into_any_arc","into_any_rc","into_any_rc","serialize","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","PrecomputeData","__clone_box","as_any","as_any_mut","batch_check","borrow","borrow_mut","check","clone","clone_into","clone_to_uninit","deref","deref_mut","deserialize","deserialize_with_mode","drop","eq","equivalent","equivalent","equivalent","fmt","from","hash","init","into","into_any","into_any_arc","into_any_rc","serialize","serialize_with_mode","serialized_size","to_owned","try_from","try_into","type_id","vzip","PayloadProver","Statement","__clone_box","as_any","as_any_mut","borrow","borrow_mut","clone","clone_into","clone_to_uninit","commit","common","deref","deref_mut","drop","from","init","into","into_any","into_any_arc","into_any_rc","payload_proof","payload_subslice","payload_verify","range","to_owned","try_from","try_into","type_id","vzip","Precomputable","PrecomputeData","commit_only_precompute","disperse_precompute"],"q":[[0,"jf_vid"],[76,"jf_vid::advz"],[195,"jf_vid::advz::payload_prover"],[255,"jf_vid::advz::precomputable"],[291,"jf_vid::payload_prover"],[321,"jf_vid::precomputable"],[325,"dyn_clone::sealed"],[326,"core::any"],[327,"core::error"],[328,"core::marker"],[329,"core::clone"],[330,"core::fmt"],[331,"serde::de"],[332,"core::cmp"],[333,"core::hash"],[334,"serde::ser"],[335,"tagged_base64"],[336,"core::convert"],[337,"core::result"],[338,"alloc::boxed"],[339,"alloc::sync"],[340,"alloc::rc"],[341,"alloc::vec"],[342,"alloc::string"],[343,"ark_serialize::error"],[344,"ark_ec::pairing"],[345,"jf_merkle_tree::hasher"],[346,"core::iter::traits::iterator"],[347,"ark_serialize"],[348,"std::io"],[349,"ark_poly::polynomial::univariate::dense"],[350,"core::borrow"],[351,"core::ops::range"]],"i":[35,8,8,13,35,13,8,0,0,0,0,7,0,7,35,7,35,35,7,35,7,35,7,7,7,7,8,7,7,35,7,35,7,8,7,35,7,7,7,7,7,35,35,7,35,8,8,8,7,7,35,7,35,7,35,7,35,7,35,8,0,0,8,7,7,7,35,7,35,7,35,7,35,8,7,35,0,0,0,0,0,52,53,49,52,53,49,52,53,49,49,52,53,49,52,53,49,49,52,53,49,52,53,49,52,53,49,52,52,52,53,49,52,53,49,53,49,49,52,52,52,53,49,52,53,49,52,52,52,53,53,53,49,49,49,52,53,49,52,53,49,52,52,52,53,49,52,53,49,52,53,49,52,53,49,52,53,49,52,53,49,52,58,60,60,52,52,52,0,52,52,0,52,53,49,49,49,52,53,49,52,53,49,52,53,49,52,53,49,52,52,53,49,60,52,0,0,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,64,64,63,63,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,64,63,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,0,0,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,70,65,70,65,65,65,65,65,65,0,72,72,72],"f":"```````````{{{b{c}}d}f{}}`{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{l}}}{}}{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{n{c}}}}}{{n{c}}}{A`Ab}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}`{{{b{j{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}i}{{Aj{c}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}{{Ch{{Cf{Cd}}}}}}`{Cj{{b{c}}}{}}0{Cj{{b{jc}}}{}}0{c{{Cl{{n{e}}}}}Cn{A`Ab}}{{{b{j{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}i}{{Aj{{n{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}{{Ch{{Cf{Cd}}}}}}{Cjf}0{{{b{{n{c}}}}{b{{n{c}}}}}D`{A`Ab}}{{{b{c}}{b{e}}}D`{}{}}00{{{b{{n{c}}}}{b{jDb}}}Dd{A`Ab}}{{{b{Df}}{b{jDb}}}Dd}0{cc{}}0{{{b{c}}}Dh{}}00{{{b{{n{c}}}}{b{je}}}f{A`Ab}Dj}{{}Cj}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{c}}{b{e}}}{{Aj{f}}}{}{}}``{{{b{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}{b{{Cf{e}}}}{b{g}}}{{Aj{{Eb{Cd}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}}{{{b{{n{c}}}}e}Cl{A`Ab}Ed}`{{{b{c}}}e{}{}}{{{b{c}}}Ef{}}{c{{Cl{e}}}{}{}}000{{{b{c}}}Eh{}}0{{{b{{A`{}{{Ad{c}}{Af{e}}{Ah{g}}}}}}{b{e}}{b{g}}{b{c}}}{{Aj{{Cl{ff}}}}}{AlAnB`BbBdBfBhBjBl{C`{{b{Bn}}}}{Cb{Bn}}}{AlAnBbBdBfBhBjBl}{AlAnBbBdBfBhBjBl}};;`````{{{b{c}}d}f{}}00{{{b{c}}}{{b{h}}}{}}00{{{b{jc}}}{{b{jh}}}{}}00{g{{Cl{fEj}}}ElEn{{Fd{}{{F`{{b{{Fb{ce}}}}}}}}Ff}}{{{b{c}}}{{b{e}}}{}{}}00{{{b{jc}}}{{b{je}}}{}{}}00{{{b{{Fb{ce}}}}}{{Cl{fEj}}}ElEn}{{{b{{Fh{ceg}}}}}{{Fh{ceg}}}{ElAl}Al{BlAl}}{{{b{{Fj{ce}}}}}{{Fj{ce}}}ElEn}{{{b{{Fb{ce}}}}}{{Fb{ce}}}ElEn}{{{b{c}}{b{je}}}f{}{}}00{{{b{c}}}f{}}00{{{b{j{Fh{ceg}}}}i}{{Aj{k}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}}{{{b{{Fh{ceg}}}}i}{{Aj{{Fl{km}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}{}}{Cj{{b{c}}}{}}00{Cj{{b{jc}}}{}}00{c{{Cl{{Fj{eg}}}}}CnElEn}{c{{Cl{{Fb{eg}}}}}CnElEn}{{cFnG`}{{Cl{{Fb{eg}}Ej}}}GbElEn}{{{b{j{Fh{ceg}}}}i}{{Aj{{n{{Fh{ceg}}}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}}{{{b{{Fh{ceg}}}}i{b{k}}}{{Aj{{n{{Fh{ceg}}}}}}}ElEnBl{{Ch{{Cf{Cd}}}}}{}}{Cjf}00{{{b{{Fh{ceg}}}}{b{{Fh{ceg}}}}}D`{ElBf}Bf{BlBf}}{{{b{{Fj{ce}}}}{b{{Fj{ce}}}}}D`ElEn}{{{b{{Fb{ce}}}}{b{{Fb{ce}}}}}D`ElEn}{{{b{c}}{b{e}}}D`{}{}}00000000{{{b{{Fh{ceg}}}}{b{jDb}}}Dd{ElAn}An{BlAn}}{{{b{{Fj{ce}}}}{b{jDb}}}DdElEn}{{{b{{Fb{ce}}}}{b{jDb}}}DdElEn}{cc{}}00{{{b{c}}}Dh{}}00{{{b{{Fj{ce}}}}{b{jg}}}fElEnDj}{{{b{{Fb{ce}}}}{b{jg}}}fElEnDj}{{}Cj}00{ce{}{}}00{{{Dl{c}}}{{Dl{h}}}{}}00{{{Dn{c}}}{{Dn{h}}}{}}00{{{E`{c}}}{{E`{h}}}{}}00{{{b{c}}{b{e}}}{{Aj{f}}}{}{}}{{{b{jGd}}{b{{Cf{Gf}}}}}{{Aj{Eb}}}}{{{b{j{Gh{ce}}}}{b{{Cf{Gf}}}}}{{Aj{Eb}}}El{}}{{DhDhc}{{Aj{{Gh{eg}}}}}GjEl{}}{{DhDhc}{{Aj{{Fh{egf}}}}}GjEl{}}{{{b{{Fh{ceg}}}}i{Gl{Cj}}}{{Aj{Gn}}}ElEnBl{{Ch{{Cf{Cd}}}}}}{{{b{{Fh{ceg}}}}i{Gl{Cj}}}{{Aj{H`}}}ElEnBl{{Ch{{Cf{Cd}}}}}}`{{{b{{Fh{ceg}}}}{Hb{{Fh{ceg}}}}{b{H`}}}{{Aj{{Cl{ff}}}}}ElEnBl}{{{b{{Fh{ceg}}}}{Hb{{Fh{ceg}}}}{b{Gn}}}{{Aj{{Cl{ff}}}}}ElEnBl}`{{{b{{Fh{ceg}}}}{b{{Cf{i}}}}{b{k}}}{{Aj{{Eb{Cd}}}}}ElEnBl{}{}}{{{b{{Fj{ce}}}}g}ClElEnEd}{{{b{{Fb{ce}}}}g}ClElEnEd}{{{b{{Fb{ce}}}}gFn}{{Cl{fEj}}}ElEnHd}{{{b{{Fb{ce}}}}Fn}CjElEn}{{{b{c}}}e{}{}}00{c{{Cl{e}}}{}{}}00000{{{b{c}}}Eh{}}00{{{b{{Fh{ceg}}}}{b{i}}{b{k}}{b{m}}}{{Aj{{Cl{ff}}}}}ElEnBl{}{}{}}{ce{}{}}00{{DhDhDhc}{{Aj{{Gh{eg}}}}}GjEl{}}{{DhDhDhc}{{Aj{{Fh{egf}}}}}GjEl{}}``{{{b{c}}d}f{}}0{{{b{c}}}{{b{h}}}{}}0{{{b{jc}}}{{b{jh}}}{}}0{{{b{c}}}{{b{e}}}{}{}}0{{{b{jc}}}{{b{je}}}{}{}}0{{{b{{H`{c}}}}}{{H`{c}}}Al}{{{b{{Gn{c}}}}}{{Gn{c}}}Al}{{{b{c}}{b{je}}}f{}{}}0{{{b{c}}}f{}}0{Cj{{b{c}}}{}}0{Cj{{b{jc}}}{}}0{c{{Cl{{H`{e}}}}}Cn{HfHh}}{c{{Cl{{Gn{e}}}}}Cn{HfHh}}{Cjf}0{{{b{{H`{c}}}}{b{{H`{c}}}}}D`Bf}{{{b{{Gn{c}}}}{b{{Gn{c}}}}}D`Bf}{{{b{c}}{b{e}}}D`{}{}}00000{{{b{{H`{c}}}}{b{jDb}}}DdAn}{{{b{{Gn{c}}}}{b{jDb}}}DdAn}{cc{}}0{{}Cj}0{ce{}{}}0{{{Dl{c}}}{{Dl{h}}}{}}0{{{Dn{c}}}{{Dn{h}}}{}}0{{{E`{c}}}{{E`{h}}}{}}0{{{b{{H`{c}}}}e}Cl{HfHh}Ed}{{{b{{Gn{c}}}}e}Cl{HfHh}Ed}{{{b{c}}}e{}{}}0{c{{Cl{e}}}{}{}}000{{{b{c}}}Eh{}}088`{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{e{{Cl{fEj}}}El{{Fd{}{{F`{{b{{Hj{c}}}}}}}}Ff}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Hj{c}}}}}{{Cl{fEj}}}El}{{{b{{Hj{c}}}}}{{Hj{c}}}{ElAl}}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}{Cj{{b{c}}}{}}{Cj{{b{jc}}}{}}{c{{Cl{{Hj{e}}}}}CnEl}{{cFnG`}{{Cl{{Hj{e}}Ej}}}GbEl}{Cjf}{{{b{{Hj{c}}}}{b{{Hj{c}}}}}D`{ElBf}}{{{b{c}}{b{e}}}D`{}{}}00{{{b{{Hj{c}}}}{b{jDb}}}Dd{ElAn}}{cc{}}{{{b{{Hj{c}}}}{b{je}}}fElDj}{{}Cj}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{{Hj{c}}}}e}ClElEd}{{{b{{Hj{c}}}}eFn}{{Cl{fEj}}}ElHd}{{{b{{Hj{c}}}}Fn}CjEl}{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Eh{}}9``{{{b{c}}d}f{}}{{{b{c}}}{{b{h}}}{}}{{{b{jc}}}{{b{jh}}}{}}{{{b{c}}}{{b{e}}}{}{}}{{{b{jc}}}{{b{je}}}{}{}}{{{b{{Hb{c}}}}}{{Hb{c}}}A`}{{{b{c}}{b{je}}}f{}{}}{{{b{c}}}f{}}``{Cj{{b{c}}}{}}{Cj{{b{jc}}}{}}{Cjf}{cc{}}{{}Cj}{ce{}{}}{{{Dl{c}}}{{Dl{h}}}{}}{{{Dn{c}}}{{Dn{h}}}{}}{{{E`{c}}}{{E`{h}}}{}}{{{b{Hl}}c{Gl{Cj}}}{{Aj{e}}}{{Ch{{Cf{Cd}}}}}{AlAnBdBfBjBb}}`{{{b{Hl}}{Hb{Hl}}{b{c}}}{{Aj{{Cl{ff}}}}}{AlAnBdBfBjBb}}`{{{b{c}}}e{}{}}{c{{Cl{e}}}{}{}}0{{{b{c}}}Eh{}}8``{{{b{{I`{}{{Hn{c}}}}}}e}{{Aj{{Fl{gc}}}}}{AlAnBdBfBhBlBjBb}{{Ch{{Cf{Cd}}}}}{}}{{{b{{I`{}{{Hn{c}}}}}}e{b{c}}}{{Aj{{n{{I`{}{{Hn{c}}}}}}}}}{AlAnBdBfBhBlBjBb}{{Ch{{Cf{Cd}}}}}}","D":"Hn","p":[[1,"reference"],[5,"Private",325],[1,"unit"],[10,"Any",326],[0,"mut"],[10,"Error",327],[5,"VidDisperse",0],[10,"VidScheme",0],[10,"Sized",328],[17,"Commit"],[17,"Share"],[17,"Common"],[8,"VidResult",0],[10,"Clone",329],[10,"Debug",330],[10,"Display",330],[10,"DeserializeOwned",331],[10,"Eq",332],[10,"PartialEq",332],[10,"Hash",333],[10,"Serialize",334],[10,"Sync",328],[5,"TaggedBase64",335],[10,"TryFrom",336],[10,"Into",336],[1,"u8"],[1,"slice"],[10,"AsRef",336],[1,"usize"],[6,"Result",337],[10,"Deserializer",331],[1,"bool"],[5,"Formatter",330],[8,"Result",330],[6,"VidError",0],[1,"u32"],[10,"Hasher",333],[5,"Box",338],[5,"Arc",339],[5,"Rc",340],[5,"Vec",341],[10,"Serializer",334],[5,"String",342],[5,"TypeId",326],[6,"SerializationError",343],[10,"Pairing",344],[10,"HasherDigest",345],[17,"Item"],[5,"Common",76],[10,"Iterator",346],[10,"Send",328],[5,"AdvzInternal",76],[5,"Share",76],[1,"tuple"],[6,"Compress",347],[6,"Validate",347],[10,"Read",348],[10,"MaybeGPU",76],[5,"DensePolynomial",349],[8,"Advz",76],[10,"Borrow",350],[5,"Range",351],[5,"LargeRangeProof",195],[5,"SmallRangeProof",195],[5,"Statement",291],[10,"Write",348],[10,"CanonicalSerialize",347],[10,"CanonicalDeserialize",347],[5,"PrecomputeData",255],[10,"PayloadProver",291],[17,"PrecomputeData"],[10,"Precomputable",321]],"r":[],"b":[[41,"impl-Display-for-VidError"],[42,"impl-Debug-for-VidError"],[166,"impl-PayloadProver%3CLargeRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Evaluation%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[167,"impl-PayloadProver%3CSmallRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Proof%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[169,"impl-PayloadProver%3CSmallRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Proof%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"],[170,"impl-PayloadProver%3CLargeRangeProof%3C%3CUnivariateKzgPCS%3CE%3E+as+PolynomialCommitmentScheme%3E::Evaluation%3E%3E-for-AdvzInternal%3CE,+H,+T%3E"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAAP4AGwAMAAAADgALAB0ABAAjAAgAMQACADYABQBAAAAAQgAHAEsAAQBSADgAjgAHAJkACQCkAAAApwABAKoAAQCtABQAxgAhAOoAAQDuABEAAQETABYBAQAZAQoAJgEHADABAgA0AQAANgECAD0BBAA="}],\ +["jf_vrf",{"t":"RRRRRRRKCNMMMMMGFFPPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["Error","Input","Output","Proof","PublicKey","PublicParameter","SecretKey","Vrf","blsvrf","evaluate","key_gen","param_gen","proof_to_hash","prove","verify","BLSVRFCipherSuite","BLSVRFError","BLSVRFScheme","VRF_BLS_12_381_SHA256","VRF_BLS_12_381_SHA512","as_error_source","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","fmt","fmt","fmt","from","from","from","init","init","init","into","into","into","key_gen","new","param_gen","proof_to_hash","prove","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip"],"q":[[0,"jf_vrf"],[15,"jf_vrf::blsvrf"],[67,"core::result"],[68,"core::fmt"],[69,"core::clone"],[70,"core::marker"],[71,"serde::de"],[72,"serde::ser"],[73,"core::cmp"],[74,"zeroize"],[75,"core::error"],[76,"rand_core"],[77,"core::option"],[78,"alloc::string"],[79,"core::any"]],"i":[9,9,9,9,9,9,9,0,0,9,9,9,9,9,9,0,0,0,29,29,32,33,29,32,33,29,32,33,29,32,33,29,32,33,29,32,29,32,32,33,29,32,33,29,32,33,29,32,33,33,33,33,33,32,33,29,32,33,29,32,33,29,32,33,33,29,32],"f":"`````````{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{g}}{Ad{k}}{Ad{bAa}}}{{Af{mo}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{bAa}}}{{Af{{C`{ge}}o}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Cb{{Ad{bAa}}}}}{{Af{co}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{i}}}{{Af{mo}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj}{{{Ad{{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{g}}{Ad{k}}{Ad{bAa}}}{{Af{io}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj{BlBn}}{{{Ad{b{Ab{}{{d{c}}{f{e}}{h{g}}{j{i}}{l{k}}{n{m}}{A`{o}}}}}}{Ad{c}}{Ad{i}}{Ad{e}}{Ad{k}}}{{Af{{C`{Cd{Cb{m}}}}o}}}{}{AhAjAlAnB`BbBdBf}{AhAjAlAnBhB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}{AhAjAlAnB`BbBdBf}Bj}`````{{{Ad{c}}}{{Ad{Bj}}}{}}{{{Ad{c}}}{{Ad{e}}}{}{}}00{{{Ad{bc}}}{{Ad{be}}}{}{}}00{Cf{{Ad{c}}}{}}00{Cf{{Ad{bc}}}{}}00{CfCh}00{{{Ad{Cj}}{Ad{bCl}}}Cn}{{{Ad{D`}}{Ad{bCl}}}Cn}0{cc{}}00{{}Cf}00{ce{}{}}00{{{Ad{Db}}{Ad{c}}{Ad{be}}}{{Af{{C`{gi}}D`}}}{}{BlBn}{}{}}{CjDb}{{{Ad{Db}}{Cb{{Ad{bc}}}}}{{Af{eD`}}}{BlBn}{}}{{{Ad{bDb}}{Ad{c}}{Ad{e}}}{{Af{gD`}}}{}{}{}}{{{Ad{Db}}{Ad{c}}{Ad{e}}{Ad{g}}{Ad{bi}}}{{Af{kD`}}}{}{}{}{BlBn}{}}{{{Ad{c}}}Dd{}}{c{{Af{e}}}{}{}}00000{{{Ad{c}}}Df{}}00{{{Ad{bDb}}{Ad{c}}{Ad{e}}{Ad{g}}{Ad{i}}}{{Af{{C`{Cd{Cb{k}}}}D`}}}{}{}{}{}{}}999","D":"Db","p":[[0,"mut"],[17,"PublicParameter"],[17,"PublicKey"],[17,"SecretKey"],[17,"Proof"],[17,"Input"],[17,"Output"],[17,"Error"],[10,"Vrf",0],[1,"reference"],[6,"Result",67],[10,"Debug",68],[10,"Clone",69],[10,"Send",70],[10,"Sync",70],[10,"Deserialize",71],[10,"Serialize",72],[10,"PartialEq",73],[10,"Eq",73],[10,"Zeroize",74],[10,"Error",75],[10,"CryptoRng",76],[10,"RngCore",76],[1,"tuple"],[6,"Option",77],[1,"bool"],[1,"usize"],[1,"unit"],[6,"BLSVRFCipherSuite",15],[5,"Formatter",68],[8,"Result",68],[5,"BLSVRFError",15],[5,"BLSVRFScheme",15],[5,"String",78],[5,"TypeId",79]],"r":[],"b":[[37,"impl-Debug-for-BLSVRFError"],[38,"impl-Display-for-BLSVRFError"]],"c":"OjAAAAAAAAA=","e":"OzAAAAEAACIABAAVABIAKwACADYACQBBAAIA"}]\ ]')); if (typeof exports !== 'undefined') exports.searchIndex = searchIndex; else if (window.initSearch) window.initSearch(searchIndex); diff --git a/settings.html b/settings.html index e9c4105aa..fcb2207a9 100644 --- a/settings.html +++ b/settings.html @@ -1 +1 @@ -Settings

    Rustdoc settings

    Back
    \ No newline at end of file +Settings

    Rustdoc settings

    Back
    \ No newline at end of file diff --git a/src/jf_aead/lib.rs.html b/src/jf_aead/lib.rs.html index 7aa91f107..b40d1cd5c 100644 --- a/src/jf_aead/lib.rs.html +++ b/src/jf_aead/lib.rs.html @@ -1,4 +1,4 @@ -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_commitment/lib.rs.html b/src/jf_commitment/lib.rs.html
    index 25d234677..e2a7c50bb 100644
    --- a/src/jf_commitment/lib.rs.html
    +++ b/src/jf_commitment/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_crhf/lib.rs.html b/src/jf_crhf/lib.rs.html
    index 5ce9096e9..a7689d887 100644
    --- a/src/jf_crhf/lib.rs.html
    +++ b/src/jf_crhf/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_elgamal/lib.rs.html b/src/jf_elgamal/lib.rs.html
    index e5d660777..b8b1e45e3 100644
    --- a/src/jf_elgamal/lib.rs.html
    +++ b/src/jf_elgamal/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/append_only.rs.html b/src/jf_merkle_tree/append_only.rs.html
    index 0fb53c769..9e70bcfab 100644
    --- a/src/jf_merkle_tree/append_only.rs.html
    +++ b/src/jf_merkle_tree/append_only.rs.html
    @@ -1,4 +1,4 @@
    -append_only.rs - source
    1
    +append_only.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/errors.rs.html b/src/jf_merkle_tree/errors.rs.html
    index f373ea529..5a830f1e8 100644
    --- a/src/jf_merkle_tree/errors.rs.html
    +++ b/src/jf_merkle_tree/errors.rs.html
    @@ -1,4 +1,4 @@
    -errors.rs - source
    1
    +errors.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/examples.rs.html b/src/jf_merkle_tree/examples.rs.html
    index 7e86d2535..899299352 100644
    --- a/src/jf_merkle_tree/examples.rs.html
    +++ b/src/jf_merkle_tree/examples.rs.html
    @@ -1,4 +1,4 @@
    -examples.rs - source
    1
    +examples.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/hasher.rs.html b/src/jf_merkle_tree/hasher.rs.html
    index c5d34c59f..1b5d6f361 100644
    --- a/src/jf_merkle_tree/hasher.rs.html
    +++ b/src/jf_merkle_tree/hasher.rs.html
    @@ -1,4 +1,4 @@
    -hasher.rs - source
    1
    +hasher.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/internal.rs.html b/src/jf_merkle_tree/internal.rs.html
    index 349c84961..77425b5a8 100644
    --- a/src/jf_merkle_tree/internal.rs.html
    +++ b/src/jf_merkle_tree/internal.rs.html
    @@ -1,4 +1,4 @@
    -internal.rs - source
    1
    +internal.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/lib.rs.html b/src/jf_merkle_tree/lib.rs.html
    index 819950b85..55055dee0 100644
    --- a/src/jf_merkle_tree/lib.rs.html
    +++ b/src/jf_merkle_tree/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/light_weight.rs.html b/src/jf_merkle_tree/light_weight.rs.html
    index d69995a7a..040a82849 100644
    --- a/src/jf_merkle_tree/light_weight.rs.html
    +++ b/src/jf_merkle_tree/light_weight.rs.html
    @@ -1,4 +1,4 @@
    -light_weight.rs - source
    1
    +light_weight.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/macros.rs.html b/src/jf_merkle_tree/macros.rs.html
    index 74dbb6350..9510e2b7f 100644
    --- a/src/jf_merkle_tree/macros.rs.html
    +++ b/src/jf_merkle_tree/macros.rs.html
    @@ -1,4 +1,4 @@
    -macros.rs - source
    1
    +macros.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/namespaced_merkle_tree/hash.rs.html b/src/jf_merkle_tree/namespaced_merkle_tree/hash.rs.html
    index 9bef41d98..67f3c9194 100644
    --- a/src/jf_merkle_tree/namespaced_merkle_tree/hash.rs.html
    +++ b/src/jf_merkle_tree/namespaced_merkle_tree/hash.rs.html
    @@ -1,4 +1,4 @@
    -hash.rs - source
    1
    +hash.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/namespaced_merkle_tree/mod.rs.html b/src/jf_merkle_tree/namespaced_merkle_tree/mod.rs.html
    index 71cac0f6e..2982fde12 100644
    --- a/src/jf_merkle_tree/namespaced_merkle_tree/mod.rs.html
    +++ b/src/jf_merkle_tree/namespaced_merkle_tree/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/namespaced_merkle_tree/proof.rs.html b/src/jf_merkle_tree/namespaced_merkle_tree/proof.rs.html
    index ce1aac4de..2792f723f 100644
    --- a/src/jf_merkle_tree/namespaced_merkle_tree/proof.rs.html
    +++ b/src/jf_merkle_tree/namespaced_merkle_tree/proof.rs.html
    @@ -1,4 +1,4 @@
    -proof.rs - source
    1
    +proof.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/prelude.rs.html b/src/jf_merkle_tree/prelude.rs.html
    index 041ae4ec5..b8ff6f9cc 100644
    --- a/src/jf_merkle_tree/prelude.rs.html
    +++ b/src/jf_merkle_tree/prelude.rs.html
    @@ -1,4 +1,4 @@
    -prelude.rs - source
    1
    +prelude.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_merkle_tree/universal_merkle_tree.rs.html b/src/jf_merkle_tree/universal_merkle_tree.rs.html
    index 5caef81c4..a049169a5 100644
    --- a/src/jf_merkle_tree/universal_merkle_tree.rs.html
    +++ b/src/jf_merkle_tree/universal_merkle_tree.rs.html
    @@ -1,4 +1,4 @@
    -universal_merkle_tree.rs - source
    1
    +universal_merkle_tree.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/errors.rs.html b/src/jf_pcs/errors.rs.html
    index b51bd4726..a9287cc21 100644
    --- a/src/jf_pcs/errors.rs.html
    +++ b/src/jf_pcs/errors.rs.html
    @@ -1,4 +1,4 @@
    -errors.rs - source
    1
    +errors.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/lib.rs.html b/src/jf_pcs/lib.rs.html
    index 32c85935f..6ac6a82c9 100644
    --- a/src/jf_pcs/lib.rs.html
    +++ b/src/jf_pcs/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/multilinear_kzg/batching.rs.html b/src/jf_pcs/multilinear_kzg/batching.rs.html
    index 14c8def3c..3681c1a40 100644
    --- a/src/jf_pcs/multilinear_kzg/batching.rs.html
    +++ b/src/jf_pcs/multilinear_kzg/batching.rs.html
    @@ -1,4 +1,4 @@
    -batching.rs - source
    1
    +batching.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/multilinear_kzg/mod.rs.html b/src/jf_pcs/multilinear_kzg/mod.rs.html
    index 8adcd8bf4..6e8a97097 100644
    --- a/src/jf_pcs/multilinear_kzg/mod.rs.html
    +++ b/src/jf_pcs/multilinear_kzg/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/multilinear_kzg/srs.rs.html b/src/jf_pcs/multilinear_kzg/srs.rs.html
    index ca8ccd0c7..7351f195b 100644
    --- a/src/jf_pcs/multilinear_kzg/srs.rs.html
    +++ b/src/jf_pcs/multilinear_kzg/srs.rs.html
    @@ -1,4 +1,4 @@
    -srs.rs - source
    1
    +srs.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/multilinear_kzg/util.rs.html b/src/jf_pcs/multilinear_kzg/util.rs.html
    index 9861c4c9c..c4b6d7ac9 100644
    --- a/src/jf_pcs/multilinear_kzg/util.rs.html
    +++ b/src/jf_pcs/multilinear_kzg/util.rs.html
    @@ -1,4 +1,4 @@
    -util.rs - source
    1
    +util.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/poly.rs.html b/src/jf_pcs/poly.rs.html
    index b5129a1b3..a10d60027 100644
    --- a/src/jf_pcs/poly.rs.html
    +++ b/src/jf_pcs/poly.rs.html
    @@ -1,4 +1,4 @@
    -poly.rs - source
    1
    +poly.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/prelude.rs.html b/src/jf_pcs/prelude.rs.html
    index 74219ac53..b667aa29f 100644
    --- a/src/jf_pcs/prelude.rs.html
    +++ b/src/jf_pcs/prelude.rs.html
    @@ -1,4 +1,4 @@
    -prelude.rs - source
    1
    +prelude.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/structs.rs.html b/src/jf_pcs/structs.rs.html
    index bbf961fc1..a16f949e5 100644
    --- a/src/jf_pcs/structs.rs.html
    +++ b/src/jf_pcs/structs.rs.html
    @@ -1,4 +1,4 @@
    -structs.rs - source
    1
    +structs.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/toeplitz.rs.html b/src/jf_pcs/toeplitz.rs.html
    index 61b38c078..235424ae8 100644
    --- a/src/jf_pcs/toeplitz.rs.html
    +++ b/src/jf_pcs/toeplitz.rs.html
    @@ -1,4 +1,4 @@
    -toeplitz.rs - source
    1
    +toeplitz.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/transcript.rs.html b/src/jf_pcs/transcript.rs.html
    index fc3816e93..4a5809c31 100644
    --- a/src/jf_pcs/transcript.rs.html
    +++ b/src/jf_pcs/transcript.rs.html
    @@ -1,4 +1,4 @@
    -transcript.rs - source
    1
    +transcript.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/univariate_kzg/mod.rs.html b/src/jf_pcs/univariate_kzg/mod.rs.html
    index 8b06c1bf9..5a69cefc7 100644
    --- a/src/jf_pcs/univariate_kzg/mod.rs.html
    +++ b/src/jf_pcs/univariate_kzg/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_pcs/univariate_kzg/srs.rs.html b/src/jf_pcs/univariate_kzg/srs.rs.html
    index 7a6d4ba6d..0d9f27bb0 100644
    --- a/src/jf_pcs/univariate_kzg/srs.rs.html
    +++ b/src/jf_pcs/univariate_kzg/srs.rs.html
    @@ -1,4 +1,4 @@
    -srs.rs - source
    1
    +srs.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/mod.rs.html b/src/jf_plonk/circuit/mod.rs.html
    index b0e00eac4..c2e43bdcd 100644
    --- a/src/jf_plonk/circuit/mod.rs.html
    +++ b/src/jf_plonk/circuit/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/plonk_verifier/gadgets.rs.html b/src/jf_plonk/circuit/plonk_verifier/gadgets.rs.html
    index e4da4065c..b2194f2e8 100644
    --- a/src/jf_plonk/circuit/plonk_verifier/gadgets.rs.html
    +++ b/src/jf_plonk/circuit/plonk_verifier/gadgets.rs.html
    @@ -1,4 +1,4 @@
    -gadgets.rs - source
    1
    +gadgets.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/plonk_verifier/mod.rs.html b/src/jf_plonk/circuit/plonk_verifier/mod.rs.html
    index 9d321fb20..177941fd2 100644
    --- a/src/jf_plonk/circuit/plonk_verifier/mod.rs.html
    +++ b/src/jf_plonk/circuit/plonk_verifier/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/plonk_verifier/poly.rs.html b/src/jf_plonk/circuit/plonk_verifier/poly.rs.html
    index 4f4d8db41..c1e7472a8 100644
    --- a/src/jf_plonk/circuit/plonk_verifier/poly.rs.html
    +++ b/src/jf_plonk/circuit/plonk_verifier/poly.rs.html
    @@ -1,4 +1,4 @@
    -poly.rs - source
    1
    +poly.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/plonk_verifier/structs.rs.html b/src/jf_plonk/circuit/plonk_verifier/structs.rs.html
    index a05c28d12..3a47c2db0 100644
    --- a/src/jf_plonk/circuit/plonk_verifier/structs.rs.html
    +++ b/src/jf_plonk/circuit/plonk_verifier/structs.rs.html
    @@ -1,4 +1,4 @@
    -structs.rs - source
    1
    +structs.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/circuit/transcript.rs.html b/src/jf_plonk/circuit/transcript.rs.html
    index 82d3f286a..0e89ea920 100644
    --- a/src/jf_plonk/circuit/transcript.rs.html
    +++ b/src/jf_plonk/circuit/transcript.rs.html
    @@ -1,4 +1,4 @@
    -transcript.rs - source
    1
    +transcript.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/constants.rs.html b/src/jf_plonk/constants.rs.html
    index c18298154..aa9228112 100644
    --- a/src/jf_plonk/constants.rs.html
    +++ b/src/jf_plonk/constants.rs.html
    @@ -1,4 +1,4 @@
    -constants.rs - source
    1
    +constants.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/errors.rs.html b/src/jf_plonk/errors.rs.html
    index 65745185c..6bba1e063 100644
    --- a/src/jf_plonk/errors.rs.html
    +++ b/src/jf_plonk/errors.rs.html
    @@ -1,4 +1,4 @@
    -errors.rs - source
    1
    +errors.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/lagrange.rs.html b/src/jf_plonk/lagrange.rs.html
    index f11b0d7eb..c1ddad37c 100644
    --- a/src/jf_plonk/lagrange.rs.html
    +++ b/src/jf_plonk/lagrange.rs.html
    @@ -1,4 +1,4 @@
    -lagrange.rs - source
    1
    +lagrange.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/lib.rs.html b/src/jf_plonk/lib.rs.html
    index 15fda1cc6..b7cfe42e8 100644
    --- a/src/jf_plonk/lib.rs.html
    +++ b/src/jf_plonk/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/batch_arg.rs.html b/src/jf_plonk/proof_system/batch_arg.rs.html
    index 9d3400eb0..3c786fa44 100644
    --- a/src/jf_plonk/proof_system/batch_arg.rs.html
    +++ b/src/jf_plonk/proof_system/batch_arg.rs.html
    @@ -1,4 +1,4 @@
    -batch_arg.rs - source
    1
    +batch_arg.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/mod.rs.html b/src/jf_plonk/proof_system/mod.rs.html
    index 788c6780f..11a8ddfd2 100644
    --- a/src/jf_plonk/proof_system/mod.rs.html
    +++ b/src/jf_plonk/proof_system/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/prover.rs.html b/src/jf_plonk/proof_system/prover.rs.html
    index 47ce50e2e..f7160b6fe 100644
    --- a/src/jf_plonk/proof_system/prover.rs.html
    +++ b/src/jf_plonk/proof_system/prover.rs.html
    @@ -1,4 +1,4 @@
    -prover.rs - source
    1
    +prover.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/snark.rs.html b/src/jf_plonk/proof_system/snark.rs.html
    index adfb4c2af..5e953f42b 100644
    --- a/src/jf_plonk/proof_system/snark.rs.html
    +++ b/src/jf_plonk/proof_system/snark.rs.html
    @@ -1,4 +1,4 @@
    -snark.rs - source
    1
    +snark.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/structs.rs.html b/src/jf_plonk/proof_system/structs.rs.html
    index b822fa890..1d4a23456 100644
    --- a/src/jf_plonk/proof_system/structs.rs.html
    +++ b/src/jf_plonk/proof_system/structs.rs.html
    @@ -1,4 +1,4 @@
    -structs.rs - source
    1
    +structs.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/proof_system/verifier.rs.html b/src/jf_plonk/proof_system/verifier.rs.html
    index 7a969fda7..df07559a4 100644
    --- a/src/jf_plonk/proof_system/verifier.rs.html
    +++ b/src/jf_plonk/proof_system/verifier.rs.html
    @@ -1,4 +1,4 @@
    -verifier.rs - source
    1
    +verifier.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/transcript/mod.rs.html b/src/jf_plonk/transcript/mod.rs.html
    index 32e8b3667..4bddac3d9 100644
    --- a/src/jf_plonk/transcript/mod.rs.html
    +++ b/src/jf_plonk/transcript/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/transcript/rescue.rs.html b/src/jf_plonk/transcript/rescue.rs.html
    index 118925329..7834ac202 100644
    --- a/src/jf_plonk/transcript/rescue.rs.html
    +++ b/src/jf_plonk/transcript/rescue.rs.html
    @@ -1,4 +1,4 @@
    -rescue.rs - source
    1
    +rescue.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/transcript/solidity.rs.html b/src/jf_plonk/transcript/solidity.rs.html
    index adbae01ee..bb1007a51 100644
    --- a/src/jf_plonk/transcript/solidity.rs.html
    +++ b/src/jf_plonk/transcript/solidity.rs.html
    @@ -1,4 +1,4 @@
    -solidity.rs - source
    1
    +solidity.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_plonk/transcript/standard.rs.html b/src/jf_plonk/transcript/standard.rs.html
    index 75275fc0c..7bff1f012 100644
    --- a/src/jf_plonk/transcript/standard.rs.html
    +++ b/src/jf_plonk/transcript/standard.rs.html
    @@ -1,4 +1,4 @@
    -standard.rs - source
    1
    +standard.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_prf/lib.rs.html b/src/jf_prf/lib.rs.html
    index 30190a388..4b947ea85 100644
    --- a/src/jf_prf/lib.rs.html
    +++ b/src/jf_prf/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/constants.rs.html b/src/jf_relation/constants.rs.html
    index 46d474b1c..74f154783 100644
    --- a/src/jf_relation/constants.rs.html
    +++ b/src/jf_relation/constants.rs.html
    @@ -1,4 +1,4 @@
    -constants.rs - source
    1
    +constants.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/constraint_system.rs.html b/src/jf_relation/constraint_system.rs.html
    index 2b72d07c1..66bb92f77 100644
    --- a/src/jf_relation/constraint_system.rs.html
    +++ b/src/jf_relation/constraint_system.rs.html
    @@ -1,4 +1,4 @@
    -constraint_system.rs - source
    1
    +constraint_system.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/arithmetic.rs.html b/src/jf_relation/gadgets/arithmetic.rs.html
    index 08fdbecee..07e634d5a 100644
    --- a/src/jf_relation/gadgets/arithmetic.rs.html
    +++ b/src/jf_relation/gadgets/arithmetic.rs.html
    @@ -1,4 +1,4 @@
    -arithmetic.rs - source
    1
    +arithmetic.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/cmp.rs.html b/src/jf_relation/gadgets/cmp.rs.html
    index ef148f618..10adbfa82 100644
    --- a/src/jf_relation/gadgets/cmp.rs.html
    +++ b/src/jf_relation/gadgets/cmp.rs.html
    @@ -1,4 +1,4 @@
    -cmp.rs - source
    1
    +cmp.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/conversion.rs.html b/src/jf_relation/gadgets/ecc/conversion.rs.html
    index 1b0ec2e8f..c72ec9d28 100644
    --- a/src/jf_relation/gadgets/ecc/conversion.rs.html
    +++ b/src/jf_relation/gadgets/ecc/conversion.rs.html
    @@ -1,4 +1,4 @@
    -conversion.rs - source
    1
    +conversion.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/emulated/mod.rs.html b/src/jf_relation/gadgets/ecc/emulated/mod.rs.html
    index 74fe46baf..ce100b277 100644
    --- a/src/jf_relation/gadgets/ecc/emulated/mod.rs.html
    +++ b/src/jf_relation/gadgets/ecc/emulated/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/emulated/short_weierstrass.rs.html b/src/jf_relation/gadgets/ecc/emulated/short_weierstrass.rs.html
    index 066d7a817..92e820dc0 100644
    --- a/src/jf_relation/gadgets/ecc/emulated/short_weierstrass.rs.html
    +++ b/src/jf_relation/gadgets/ecc/emulated/short_weierstrass.rs.html
    @@ -1,4 +1,4 @@
    -short_weierstrass.rs - source
    1
    +short_weierstrass.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/emulated/twisted_edwards.rs.html b/src/jf_relation/gadgets/ecc/emulated/twisted_edwards.rs.html
    index 0ba0da69f..bda78b723 100644
    --- a/src/jf_relation/gadgets/ecc/emulated/twisted_edwards.rs.html
    +++ b/src/jf_relation/gadgets/ecc/emulated/twisted_edwards.rs.html
    @@ -1,4 +1,4 @@
    -twisted_edwards.rs - source
    1
    +twisted_edwards.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/glv.rs.html b/src/jf_relation/gadgets/ecc/glv.rs.html
    index 345004e9c..52a5e2db1 100644
    --- a/src/jf_relation/gadgets/ecc/glv.rs.html
    +++ b/src/jf_relation/gadgets/ecc/glv.rs.html
    @@ -1,4 +1,4 @@
    -glv.rs - source
    1
    +glv.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/mod.rs.html b/src/jf_relation/gadgets/ecc/mod.rs.html
    index aa84b0aed..663a0b0c9 100644
    --- a/src/jf_relation/gadgets/ecc/mod.rs.html
    +++ b/src/jf_relation/gadgets/ecc/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ecc/msm.rs.html b/src/jf_relation/gadgets/ecc/msm.rs.html
    index e325d23b7..76b705256 100644
    --- a/src/jf_relation/gadgets/ecc/msm.rs.html
    +++ b/src/jf_relation/gadgets/ecc/msm.rs.html
    @@ -1,4 +1,4 @@
    -msm.rs - source
    1
    +msm.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/emulated.rs.html b/src/jf_relation/gadgets/emulated.rs.html
    index c208eb69b..357ba0ee8 100644
    --- a/src/jf_relation/gadgets/emulated.rs.html
    +++ b/src/jf_relation/gadgets/emulated.rs.html
    @@ -1,4 +1,4 @@
    -emulated.rs - source
    1
    +emulated.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/logic.rs.html b/src/jf_relation/gadgets/logic.rs.html
    index c20f34cba..ec61f1213 100644
    --- a/src/jf_relation/gadgets/logic.rs.html
    +++ b/src/jf_relation/gadgets/logic.rs.html
    @@ -1,4 +1,4 @@
    -logic.rs - source
    1
    +logic.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/mod.rs.html b/src/jf_relation/gadgets/mod.rs.html
    index 420cf68ab..ac27bf09b 100644
    --- a/src/jf_relation/gadgets/mod.rs.html
    +++ b/src/jf_relation/gadgets/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/range.rs.html b/src/jf_relation/gadgets/range.rs.html
    index 27910a098..02e222dbe 100644
    --- a/src/jf_relation/gadgets/range.rs.html
    +++ b/src/jf_relation/gadgets/range.rs.html
    @@ -1,4 +1,4 @@
    -range.rs - source
    1
    +range.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ultraplonk/lookup_table.rs.html b/src/jf_relation/gadgets/ultraplonk/lookup_table.rs.html
    index 1251b0d8c..f6ad4df36 100644
    --- a/src/jf_relation/gadgets/ultraplonk/lookup_table.rs.html
    +++ b/src/jf_relation/gadgets/ultraplonk/lookup_table.rs.html
    @@ -1,4 +1,4 @@
    -lookup_table.rs - source
    1
    +lookup_table.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ultraplonk/mod.rs.html b/src/jf_relation/gadgets/ultraplonk/mod.rs.html
    index 9a9853e67..be9f11b98 100644
    --- a/src/jf_relation/gadgets/ultraplonk/mod.rs.html
    +++ b/src/jf_relation/gadgets/ultraplonk/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ultraplonk/mod_arith.rs.html b/src/jf_relation/gadgets/ultraplonk/mod_arith.rs.html
    index 05e6332a1..e87898cee 100644
    --- a/src/jf_relation/gadgets/ultraplonk/mod_arith.rs.html
    +++ b/src/jf_relation/gadgets/ultraplonk/mod_arith.rs.html
    @@ -1,4 +1,4 @@
    -mod_arith.rs - source
    1
    +mod_arith.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ultraplonk/non_native_gates.rs.html b/src/jf_relation/gadgets/ultraplonk/non_native_gates.rs.html
    index 285c51c00..65a365413 100644
    --- a/src/jf_relation/gadgets/ultraplonk/non_native_gates.rs.html
    +++ b/src/jf_relation/gadgets/ultraplonk/non_native_gates.rs.html
    @@ -1,4 +1,4 @@
    -non_native_gates.rs - source
    1
    +non_native_gates.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/ultraplonk/range.rs.html b/src/jf_relation/gadgets/ultraplonk/range.rs.html
    index 4ccd7e292..2d11e1251 100644
    --- a/src/jf_relation/gadgets/ultraplonk/range.rs.html
    +++ b/src/jf_relation/gadgets/ultraplonk/range.rs.html
    @@ -1,4 +1,4 @@
    -range.rs - source
    1
    +range.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gadgets/utils.rs.html b/src/jf_relation/gadgets/utils.rs.html
    index 945600d60..9ceae7ad6 100644
    --- a/src/jf_relation/gadgets/utils.rs.html
    +++ b/src/jf_relation/gadgets/utils.rs.html
    @@ -1,4 +1,4 @@
    -utils.rs - source
    1
    +utils.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gates/arithmetic.rs.html b/src/jf_relation/gates/arithmetic.rs.html
    index 5c03aa06c..c34b3e7b3 100644
    --- a/src/jf_relation/gates/arithmetic.rs.html
    +++ b/src/jf_relation/gates/arithmetic.rs.html
    @@ -1,4 +1,4 @@
    -arithmetic.rs - source
    1
    +arithmetic.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gates/ecc.rs.html b/src/jf_relation/gates/ecc.rs.html
    index 999891d6f..db4fa0e0c 100644
    --- a/src/jf_relation/gates/ecc.rs.html
    +++ b/src/jf_relation/gates/ecc.rs.html
    @@ -1,4 +1,4 @@
    -ecc.rs - source
    1
    +ecc.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gates/logic.rs.html b/src/jf_relation/gates/logic.rs.html
    index 81b9940e2..b97b9f657 100644
    --- a/src/jf_relation/gates/logic.rs.html
    +++ b/src/jf_relation/gates/logic.rs.html
    @@ -1,4 +1,4 @@
    -logic.rs - source
    1
    +logic.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gates/lookup.rs.html b/src/jf_relation/gates/lookup.rs.html
    index 8dc1eca29..26b97f9c6 100644
    --- a/src/jf_relation/gates/lookup.rs.html
    +++ b/src/jf_relation/gates/lookup.rs.html
    @@ -1,4 +1,4 @@
    -lookup.rs - source
    1
    +lookup.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/gates/mod.rs.html b/src/jf_relation/gates/mod.rs.html
    index 82a907d37..5e7d1d7a3 100644
    --- a/src/jf_relation/gates/mod.rs.html
    +++ b/src/jf_relation/gates/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_relation/lib.rs.html b/src/jf_relation/lib.rs.html
    index df1b08cf0..a7b24e2d4 100644
    --- a/src/jf_relation/lib.rs.html
    +++ b/src/jf_relation/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/commitment.rs.html b/src/jf_rescue/commitment.rs.html
    index 1938c5dec..ffcb75271 100644
    --- a/src/jf_rescue/commitment.rs.html
    +++ b/src/jf_rescue/commitment.rs.html
    @@ -1,4 +1,4 @@
    -commitment.rs - source
    1
    +commitment.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/crhf.rs.html b/src/jf_rescue/crhf.rs.html
    index 08f971db7..e83dcec5e 100644
    --- a/src/jf_rescue/crhf.rs.html
    +++ b/src/jf_rescue/crhf.rs.html
    @@ -1,4 +1,4 @@
    -crhf.rs - source
    1
    +crhf.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/lib.rs.html b/src/jf_rescue/lib.rs.html
    index a4da8dbca..bf256c676 100644
    --- a/src/jf_rescue/lib.rs.html
    +++ b/src/jf_rescue/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/prf.rs.html b/src/jf_rescue/prf.rs.html
    index 319ab7357..d5935aaca 100644
    --- a/src/jf_rescue/prf.rs.html
    +++ b/src/jf_rescue/prf.rs.html
    @@ -1,4 +1,4 @@
    -prf.rs - source
    1
    +prf.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/bls12_377_base.rs.html b/src/jf_rescue/rescue_constants/bls12_377_base.rs.html
    index 46d60bde1..a118240b3 100644
    --- a/src/jf_rescue/rescue_constants/bls12_377_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/bls12_377_base.rs.html
    @@ -1,4 +1,4 @@
    -bls12_377_base.rs - source
    1
    +bls12_377_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/bls12_381_base.rs.html b/src/jf_rescue/rescue_constants/bls12_381_base.rs.html
    index 587946c73..48ce0cda0 100644
    --- a/src/jf_rescue/rescue_constants/bls12_381_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/bls12_381_base.rs.html
    @@ -1,4 +1,4 @@
    -bls12_381_base.rs - source
    1
    +bls12_381_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/bn254_base.rs.html b/src/jf_rescue/rescue_constants/bn254_base.rs.html
    index 8ab35b905..21864840c 100644
    --- a/src/jf_rescue/rescue_constants/bn254_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/bn254_base.rs.html
    @@ -1,4 +1,4 @@
    -bn254_base.rs - source
    1
    +bn254_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/bw6_761_base.rs.html b/src/jf_rescue/rescue_constants/bw6_761_base.rs.html
    index d6751a229..d8e5a77c4 100644
    --- a/src/jf_rescue/rescue_constants/bw6_761_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/bw6_761_base.rs.html
    @@ -1,4 +1,4 @@
    -bw6_761_base.rs - source
    1
    +bw6_761_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/ed_on_bls12_377_base.rs.html b/src/jf_rescue/rescue_constants/ed_on_bls12_377_base.rs.html
    index c74f2e20c..e0e946957 100644
    --- a/src/jf_rescue/rescue_constants/ed_on_bls12_377_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/ed_on_bls12_377_base.rs.html
    @@ -1,4 +1,4 @@
    -ed_on_bls12_377_base.rs - source
    1
    +ed_on_bls12_377_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/ed_on_bls12_381_base.rs.html b/src/jf_rescue/rescue_constants/ed_on_bls12_381_base.rs.html
    index 8b6d55dd5..588572aed 100644
    --- a/src/jf_rescue/rescue_constants/ed_on_bls12_381_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/ed_on_bls12_381_base.rs.html
    @@ -1,4 +1,4 @@
    -ed_on_bls12_381_base.rs - source
    1
    +ed_on_bls12_381_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/ed_on_bn254_base.rs.html b/src/jf_rescue/rescue_constants/ed_on_bn254_base.rs.html
    index 37e0f4e1d..9fe4efffc 100644
    --- a/src/jf_rescue/rescue_constants/ed_on_bn254_base.rs.html
    +++ b/src/jf_rescue/rescue_constants/ed_on_bn254_base.rs.html
    @@ -1,4 +1,4 @@
    -ed_on_bn254_base.rs - source
    1
    +ed_on_bn254_base.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/rescue_constants/mod.rs.html b/src/jf_rescue/rescue_constants/mod.rs.html
    index 16e17855f..18a9ad92a 100644
    --- a/src/jf_rescue/rescue_constants/mod.rs.html
    +++ b/src/jf_rescue/rescue_constants/mod.rs.html
    @@ -1,4 +1,4 @@
    -mod.rs - source
    1
    +mod.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_rescue/sponge.rs.html b/src/jf_rescue/sponge.rs.html
    index 0db25fdc1..cbc659711 100644
    --- a/src/jf_rescue/sponge.rs.html
    +++ b/src/jf_rescue/sponge.rs.html
    @@ -1,4 +1,4 @@
    -sponge.rs - source
    1
    +sponge.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_signature/constants.rs.html b/src/jf_signature/constants.rs.html
    index 6a035069a..6e42b5b23 100644
    --- a/src/jf_signature/constants.rs.html
    +++ b/src/jf_signature/constants.rs.html
    @@ -1,4 +1,4 @@
    -constants.rs - source
    1
    +constants.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_signature/lib.rs.html b/src/jf_signature/lib.rs.html
    index 62a2ff5ec..a11a343d2 100644
    --- a/src/jf_signature/lib.rs.html
    +++ b/src/jf_signature/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/conversion.rs.html b/src/jf_utils/conversion.rs.html
    index 7d0d0ecbe..c70b2316f 100644
    --- a/src/jf_utils/conversion.rs.html
    +++ b/src/jf_utils/conversion.rs.html
    @@ -1,4 +1,4 @@
    -conversion.rs - source
    1
    +conversion.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/lib.rs.html b/src/jf_utils/lib.rs.html
    index 688f15b04..4edf451b0 100644
    --- a/src/jf_utils/lib.rs.html
    +++ b/src/jf_utils/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/macros.rs.html b/src/jf_utils/macros.rs.html
    index edf2ce918..49ff9ef90 100644
    --- a/src/jf_utils/macros.rs.html
    +++ b/src/jf_utils/macros.rs.html
    @@ -1,4 +1,4 @@
    -macros.rs - source
    1
    +macros.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/multi_pairing.rs.html b/src/jf_utils/multi_pairing.rs.html
    index a64827a76..7a4363dad 100644
    --- a/src/jf_utils/multi_pairing.rs.html
    +++ b/src/jf_utils/multi_pairing.rs.html
    @@ -1,4 +1,4 @@
    -multi_pairing.rs - source
    1
    +multi_pairing.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/par_utils.rs.html b/src/jf_utils/par_utils.rs.html
    index f2b135e12..5e6cdf149 100644
    --- a/src/jf_utils/par_utils.rs.html
    +++ b/src/jf_utils/par_utils.rs.html
    @@ -1,4 +1,4 @@
    -par_utils.rs - source
    1
    +par_utils.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/reed_solomon_code.rs.html b/src/jf_utils/reed_solomon_code.rs.html
    index b8c691391..244048b08 100644
    --- a/src/jf_utils/reed_solomon_code.rs.html
    +++ b/src/jf_utils/reed_solomon_code.rs.html
    @@ -1,4 +1,4 @@
    -reed_solomon_code.rs - source
    1
    +reed_solomon_code.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_utils/serialize.rs.html b/src/jf_utils/serialize.rs.html
    index 3c5a15e1c..77091bacd 100644
    --- a/src/jf_utils/serialize.rs.html
    +++ b/src/jf_utils/serialize.rs.html
    @@ -1,4 +1,4 @@
    -serialize.rs - source
    1
    +serialize.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vdf/lib.rs.html b/src/jf_vdf/lib.rs.html
    index 387e8bcb9..05ef333cd 100644
    --- a/src/jf_vdf/lib.rs.html
    +++ b/src/jf_vdf/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vdf/minroot.rs.html b/src/jf_vdf/minroot.rs.html
    index d7b0dd665..28344b56b 100644
    --- a/src/jf_vdf/minroot.rs.html
    +++ b/src/jf_vdf/minroot.rs.html
    @@ -1,4 +1,4 @@
    -minroot.rs - source
    1
    +minroot.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/advz.rs.html b/src/jf_vid/advz.rs.html
    index 9d0ea648d..6d424530e 100644
    --- a/src/jf_vid/advz.rs.html
    +++ b/src/jf_vid/advz.rs.html
    @@ -1,4 +1,4 @@
    -advz.rs - source
    1
    +advz.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/advz/bytes_to_field.rs.html b/src/jf_vid/advz/bytes_to_field.rs.html
    index 852eb6d6f..95a57a18d 100644
    --- a/src/jf_vid/advz/bytes_to_field.rs.html
    +++ b/src/jf_vid/advz/bytes_to_field.rs.html
    @@ -1,4 +1,4 @@
    -bytes_to_field.rs - source
    1
    +bytes_to_field.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/advz/payload_prover.rs.html b/src/jf_vid/advz/payload_prover.rs.html
    index db09c8553..3f106428b 100644
    --- a/src/jf_vid/advz/payload_prover.rs.html
    +++ b/src/jf_vid/advz/payload_prover.rs.html
    @@ -1,4 +1,4 @@
    -payload_prover.rs - source
    1
    +payload_prover.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/advz/precomputable.rs.html b/src/jf_vid/advz/precomputable.rs.html
    index 182757387..698199dc9 100644
    --- a/src/jf_vid/advz/precomputable.rs.html
    +++ b/src/jf_vid/advz/precomputable.rs.html
    @@ -1,4 +1,4 @@
    -precomputable.rs - source
    1
    +precomputable.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/lib.rs.html b/src/jf_vid/lib.rs.html
    index fca362be2..d0c6abc5a 100644
    --- a/src/jf_vid/lib.rs.html
    +++ b/src/jf_vid/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/payload_prover.rs.html b/src/jf_vid/payload_prover.rs.html
    index fb81f3e71..e023c76dd 100644
    --- a/src/jf_vid/payload_prover.rs.html
    +++ b/src/jf_vid/payload_prover.rs.html
    @@ -1,4 +1,4 @@
    -payload_prover.rs - source
    1
    +payload_prover.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vid/precomputable.rs.html b/src/jf_vid/precomputable.rs.html
    index e9d6a4258..15496f3d1 100644
    --- a/src/jf_vid/precomputable.rs.html
    +++ b/src/jf_vid/precomputable.rs.html
    @@ -1,4 +1,4 @@
    -precomputable.rs - source
    1
    +precomputable.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vrf/blsvrf.rs.html b/src/jf_vrf/blsvrf.rs.html
    index ff9a86dd4..b37d930f7 100644
    --- a/src/jf_vrf/blsvrf.rs.html
    +++ b/src/jf_vrf/blsvrf.rs.html
    @@ -1,4 +1,4 @@
    -blsvrf.rs - source
    1
    +blsvrf.rs - source
    1
     2
     3
     4
    diff --git a/src/jf_vrf/lib.rs.html b/src/jf_vrf/lib.rs.html
    index 9c7982d2a..6c47dd589 100644
    --- a/src/jf_vrf/lib.rs.html
    +++ b/src/jf_vrf/lib.rs.html
    @@ -1,4 +1,4 @@
    -lib.rs - source
    1
    +lib.rs - source
    1
     2
     3
     4
    diff --git a/static.files/main-20a3ad099b048cf2.js b/static.files/main-d2fab2bf619172d3.js
    similarity index 51%
    rename from static.files/main-20a3ad099b048cf2.js
    rename to static.files/main-d2fab2bf619172d3.js
    index 133116e4d..8fc48ede7 100644
    --- a/static.files/main-20a3ad099b048cf2.js
    +++ b/static.files/main-d2fab2bf619172d3.js
    @@ -1,4 +1,4 @@
    -"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const 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":case"/":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",)}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ +"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function blurHandler(event,parentElem,hideCallback){if(!parentElem.contains(document.activeElement)&&!parentElem.contains(event.relatedTarget)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar){const mobileTitle=document.createElement("h2");mobileTitle.className="location";if(hasClass(document.querySelector(".rustdoc"),"crate")){mobileTitle.innerHTML=`Crate ${window.currentCrate}`}else if(locationTitle){mobileTitle.innerHTML=locationTitle.innerHTML}mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url,errorCallback){const script=document.createElement("script");script.src=url;if(errorCallback!==undefined){script.onerror=errorCallback}document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=").map(x=>x.replace(/\+/g," "));params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function sendSearchForm(){document.getElementsByClassName("search-form")[0].submit()}function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"),sendSearchForm);loadScript(resourcePath("search-index",".js"),sendSearchForm)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="

    "+searchState.loadingText+"

    ";searchState.showResults(search)},descShards:new Map(),loadDesc:async function({descShard,descIndex}){if(descShard.promise===null){descShard.promise=new Promise((resolve,reject)=>{descShard.resolve=resolve;const ds=descShard;const fname=`${ds.crate}-desc-${ds.shard}-`;const url=resourcePath(`search.desc/${descShard.crate}/${fname}`,".js",);loadScript(url,reject)})}const list=await descShard.promise;return list[descIndex]},loadedDescShard:function(crate,shard,data){this.descShards.get(crate)[shard].resolve(data.split("\n"))},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}if(savedHash.startsWith("impl-")){const splitAt=savedHash.indexOf("/");if(splitAt!==-1){const implId=savedHash.slice(0,splitAt);const assocId=savedHash.slice(splitAt+1);const 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":case"/":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const modpath=hasClass(document.querySelector(".rustdoc"),"mod")?"../":"";const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=`${modpath}${name}/index.html`}else{path=`${modpath}${shortty}.${name}.html`}let current_page=document.location.href.toString();if(current_page.endsWith("/")){current_page+="index.html"}const link=document.createElement("a");link.href=path;link.textContent=name;const li=document.createElement("li");if(link.href===current_page){li.classList.add("current")}li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("union","unions","Unions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("opaque","opaque-types","Opaque Types");block("attr","attributes","Attribute Macros");block("derive","derives","Derive Macros");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","),);for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}window.register_type_impls=imp=>{if(!imp||!imp[window.currentCrate]){return}window.pending_type_impls=null;const idMap=new Map();let implementations=document.getElementById("implementations-list");let trait_implementations=document.getElementById("trait-implementations-list");let trait_implementations_header=document.getElementById("trait-implementations");const script=document.querySelector("script[data-self-path]");const selfPath=script?script.getAttribute("data-self-path"):null;const mainContent=document.querySelector("#main-content");const sidebarSection=document.querySelector(".sidebar section");let methods=document.querySelector(".sidebar .block.method");let associatedTypes=document.querySelector(".sidebar .block.associatedtype");let associatedConstants=document.querySelector(".sidebar .block.associatedconstant");let sidebarTraitList=document.querySelector(".sidebar .block.trait-implementation");for(const impList of imp[window.currentCrate]){const types=impList.slice(2);const text=impList[0];const isTrait=impList[1]!==0;const traitName=impList[1];if(types.indexOf(selfPath)===-1){continue}let outputList=isTrait?trait_implementations:implementations;if(outputList===null){const outputListName=isTrait?"Trait Implementations":"Implementations";const outputListId=isTrait?"trait-implementations-list":"implementations-list";const outputListHeaderId=isTrait?"trait-implementations":"implementations";const outputListHeader=document.createElement("h2");outputListHeader.id=outputListHeaderId;outputListHeader.innerText=outputListName;outputList=document.createElement("div");outputList.id=outputListId;if(isTrait){const link=document.createElement("a");link.href=`#${outputListHeaderId}`;link.innerText="Trait Implementations";const h=document.createElement("h3");h.appendChild(link);trait_implementations=outputList;trait_implementations_header=outputListHeader;sidebarSection.appendChild(h);sidebarTraitList=document.createElement("ul");sidebarTraitList.className="block trait-implementation";sidebarSection.appendChild(sidebarTraitList);mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}else{implementations=outputList;if(trait_implementations){mainContent.insertBefore(outputListHeader,trait_implementations_header);mainContent.insertBefore(outputList,trait_implementations_header)}else{const mainContent=document.querySelector("#main-content");mainContent.appendChild(outputListHeader);mainContent.appendChild(outputList)}}}const template=document.createElement("template");template.innerHTML=text;onEachLazy(template.content.querySelectorAll("a"),elem=>{const href=elem.getAttribute("href");if(href&&!href.startsWith("#")&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});onEachLazy(template.content.querySelectorAll("[id]"),el=>{let i=0;if(idMap.has(el.id)){i=idMap.get(el.id)}else if(document.getElementById(el.id)){i=1;while(document.getElementById(`${el.id}-${2 * i}`)){i=2*i}while(document.getElementById(`${el.id}-${i}`)){i+=1}}if(i!==0){const oldHref=`#${el.id}`;const newHref=`#${el.id}-${i}`;el.id=`${el.id}-${i}`;onEachLazy(template.content.querySelectorAll("a[href]"),link=>{if(link.getAttribute("href")===oldHref){link.href=newHref}})}idMap.set(el.id,i+1)});const templateAssocItems=template.content.querySelectorAll("section.tymethod, "+"section.method, section.associatedtype, section.associatedconstant");if(isTrait){const li=document.createElement("li");const a=document.createElement("a");a.href=`#${template.content.querySelector(".impl").id}`;a.textContent=traitName;li.appendChild(a);sidebarTraitList.append(li)}else{onEachLazy(templateAssocItems,item=>{let block=hasClass(item,"associatedtype")?associatedTypes:(hasClass(item,"associatedconstant")?associatedConstants:(methods));if(!block){const blockTitle=hasClass(item,"associatedtype")?"Associated Types":(hasClass(item,"associatedconstant")?"Associated Constants":("Methods"));const blockClass=hasClass(item,"associatedtype")?"associatedtype":(hasClass(item,"associatedconstant")?"associatedconstant":("method"));const blockHeader=document.createElement("h3");const blockLink=document.createElement("a");blockLink.href="#implementations";blockLink.innerText=blockTitle;blockHeader.appendChild(blockLink);block=document.createElement("ul");block.className=`block ${blockClass}`;const insertionReference=methods||sidebarTraitList;if(insertionReference){const insertionReferenceH=insertionReference.previousElementSibling;sidebarSection.insertBefore(blockHeader,insertionReferenceH);sidebarSection.insertBefore(block,insertionReferenceH)}else{sidebarSection.appendChild(blockHeader);sidebarSection.appendChild(block)}if(hasClass(item,"associatedtype")){associatedTypes=block}else if(hasClass(item,"associatedconstant")){associatedConstants=block}else{methods=block}}const li=document.createElement("li");const a=document.createElement("a");a.innerText=item.id.split("-")[0].split(".")[1];a.href=`#${item.id}`;li.appendChild(a);block.appendChild(li)})}outputList.appendChild(template.content)}for(const list of[methods,associatedTypes,associatedConstants,sidebarTraitList]){if(!list){continue}const newChildren=Array.prototype.slice.call(list.children);newChildren.sort((a,b)=>{const aI=a.innerText;const bI=b.innerText;return aIbI?1:0});list.replaceChildren(...newChildren)}};if(window.pending_type_impls){window.register_type_impls(window.pending_type_impls)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.textContent=crate;const li=document.createElement("li");if(window.rootPath!=="./"&&crate===window.currentCrate){li.className="current"}li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
    "+window.NOTABLE_TRAITS[notable_ty]+"
    "}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px",)}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!e.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.contains(event.relatedTarget)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(document.activeElement)&&!window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.contains(event.relatedTarget)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&window.CURRENT_TOOLTIP_ELEMENT&&!window.CURRENT_TOOLTIP_ELEMENT.contains(ev.relatedTarget)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \ the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S / /","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
    "+x[0].split(" ").map((y,index)=>((index&1)===0?""+y+"":" "+y+" ")).join("")+"
    "+x[1]+"
    ").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

    Keyboard Shortcuts

    "+shortcuts+"
    ";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \ restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ diff --git a/static.files/rustdoc-c5d6553a23f1e5a6.css b/static.files/rustdoc-c5d6553a23f1e5a6.css new file mode 100644 index 000000000..9f64990b1 --- /dev/null +++ b/static.files/rustdoc-c5d6553a23f1e5a6.css @@ -0,0 +1,46 @@ + :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;--sidebar-elems-left-padding:24px;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-right:0.25rem;border-left:solid var(--sidebar-elems-left-padding) transparent;margin-left:calc(-0.25rem - var(--sidebar-elems-left-padding));background-clip:border-box;}.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:var(--sidebar-elems-left-padding);}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 calc(-16px - var(--sidebar-elems-left-padding));padding:0 var(--sidebar-elems-left-padding);text-align:center;}.sidebar-crate .logo-container img{margin-top:-16px;border-top:solid 16px transparent;box-sizing:content-box;position:relative;background-clip:border-box;z-index:1;}.sidebar-crate h2 a{display:block;border-left:solid var(--sidebar-elems-left-padding) transparent;background-clip:border-box;margin:0 calc(-24px + 0.25rem) 0 calc(-0.2rem - var(--sidebar-elems-left-padding));padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ + ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ + \ + ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ + ');width:22px;height:22px;filter:var(--settings-menu-filter);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;width:33px;margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:url('data:image/svg+xml,\ +\ +\ +');width:19px;height:18px;}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:url('data:image/svg+xml,\ + \ + ');}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ + ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ + \ + \ + ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}.item-table>li>.item-name{width:33%;}.item-table>li>div{padding-bottom:5px;word-break:break-all;}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:none;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/rustdoc-dd39b87e5fcfba68.css b/static.files/rustdoc-dd39b87e5fcfba68.css deleted file mode 100644 index 77f898322..000000000 --- a/static.files/rustdoc-dd39b87e5fcfba68.css +++ /dev/null @@ -1,46 +0,0 @@ - :root{--nav-sub-mobile-padding:8px;--search-typename-width:6.75rem;--desktop-sidebar-width:200px;--src-sidebar-width:300px;--desktop-sidebar-z-index:100;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular-018c141bf0843ffd.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium-8f9a781e4970d388.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular-46f98efaafac5295.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{box-sizing:border-box;}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;font-feature-settings:"kern","liga";background-color:var(--main-background-color);color:var(--main-color);}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:25px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}.docblock>h2:first-child,.docblock>h3:first-child,.docblock>h4:first-child,.docblock>h5:first-child,.docblock>h6:first-child{margin-top:0;}.main-heading h1{margin:0;padding:0;flex-grow:1;overflow-wrap:break-word;overflow-wrap:anywhere;}.main-heading{display:flex;flex-wrap:wrap;padding-bottom:6px;margin-bottom:15px;}.content h2,.top-doc .docblock>h3,.top-doc .docblock>h4{border-bottom:1px solid var(--headings-border-bottom-color);}h1,h2{line-height:1.25;padding-top:3px;padding-bottom:9px;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;margin:0;padding:0;white-space:pre-wrap;}#crate-search,h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,.search-input,.search-results .result-name,.item-name>a,.out-of-band,span.since,a.src,#help-button>a,summary.hideme,.scraped-example-list,ul.all-items{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}#toggle-all-docs,a.anchor,.section-header a,#src-sidebar a,.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,h1 a,.search-results a,.stab,.result-name i{color:var(--main-color);}span.enum,a.enum,span.struct,a.struct,span.union,a.union,span.primitive,a.primitive,span.type,a.type,span.foreigntype,a.foreigntype{color:var(--type-link-color);}span.trait,a.trait,span.traitalias,a.traitalias{color:var(--trait-link-color);}span.associatedtype,a.associatedtype,span.constant,a.constant,span.static,a.static{color:var(--assoc-item-link-color);}span.fn,a.fn,span.method,a.method,span.tymethod,a.tymethod{color:var(--function-link-color);}span.attr,a.attr,span.derive,a.derive,span.macro,a.macro{color:var(--macro-link-color);}span.mod,a.mod{color:var(--mod-link-color);}span.keyword,a.keyword{color:var(--keyword-link-color);}a{color:var(--link-color);text-decoration:none;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p,.docblock>.warning{margin:0 0 .75em 0;}p:last-child,.docblock>.warning:last-child{margin:0;}button{padding:1px 6px;cursor:pointer;}button#toggle-all-docs{padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.src main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}details:not(.toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;line-height:1.5;}pre.item-decl{overflow-x:auto;}.item-decl .type-contents-toggle{contain:initial;}.src .content pre{padding:20px;}.rustdoc.src .example-wrap pre.src-line-numbers{padding:20px 0 20px 4px;}img{max-width:100%;}.logo-container{line-height:0;display:block;}.rust-logo{filter:var(--rust-logo-filter);}.sidebar{font-size:0.875rem;flex:0 0 var(--desktop-sidebar-width);width:var(--desktop-sidebar-width);overflow-y:scroll;overscroll-behavior:contain;position:sticky;height:100vh;top:0;left:0;z-index:var(--desktop-sidebar-z-index);}.rustdoc.src .sidebar{flex-basis:50px;width:50px;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.hide-sidebar .sidebar,.hide-sidebar .sidebar-resizer{display:none;}.sidebar-resizer{touch-action:none;width:9px;cursor:col-resize;z-index:calc(var(--desktop-sidebar-z-index) + 1);position:fixed;height:100%;left:calc(var(--desktop-sidebar-width) + 1px);}.rustdoc.src .sidebar-resizer{left:49px;}.src-sidebar-expanded .src .sidebar-resizer{left:var(--src-sidebar-width);}.sidebar-resizing{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.sidebar-resizing*{cursor:col-resize !important;}.sidebar-resizing .sidebar{position:fixed;}.sidebar-resizing>body{padding-left:var(--resizing-sidebar-width);}.sidebar-resizer:hover,.sidebar-resizer:active,.sidebar-resizer:focus,.sidebar-resizer.active{width:10px;margin:0;left:var(--desktop-sidebar-width);border-left:solid 1px var(--sidebar-resizer-hover);}.src-sidebar-expanded .rustdoc.src .sidebar-resizer:hover,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:active,.src-sidebar-expanded .rustdoc.src .sidebar-resizer:focus,.src-sidebar-expanded .rustdoc.src .sidebar-resizer.active{left:calc(var(--src-sidebar-width) - 1px);}@media (pointer:coarse){.sidebar-resizer{display:none !important;}}.sidebar-resizer.active{padding:0 140px;width:2px;margin-left:-140px;border-left:none;}.sidebar-resizer.active:before{border-left:solid 2px var(--sidebar-resizer-active);display:block;height:100%;content:"";}.sidebar,.mobile-topbar,.sidebar-menu-toggle,#src-sidebar{background-color:var(--sidebar-background-color);}.src .sidebar>*{visibility:hidden;}.src-sidebar-expanded .src .sidebar{overflow-y:auto;flex-basis:var(--src-sidebar-width);width:var(--src-sidebar-width);}.src-sidebar-expanded .src .sidebar>*{visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;scrollbar-color:var(--scrollbar-color);}.sidebar{scrollbar-width:thin;scrollbar-color:var(--scrollbar-color);}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;background-color:var(--scrollbar-track-background-color);}.sidebar::-webkit-scrollbar-track{background-color:var(--scrollbar-track-background-color);}::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb-background-color);}.hidden{display:none !important;}.logo-container>img{height:48px;width:48px;}ul.block,.block li{padding:0;margin:0;list-style:none;}.sidebar-elems a,.sidebar>h2 a{display:block;padding:0.25rem;margin-left:-0.25rem;margin-right:0.25rem;}.sidebar h2{overflow-wrap:anywhere;padding:0;margin:0.7rem 0;}.sidebar h3{font-size:1.125rem;padding:0;margin:0;}.sidebar-elems,.sidebar>.version,.sidebar>h2{padding-left:24px;}.sidebar a{color:var(--sidebar-link-color);}.sidebar .current,.sidebar .current a,.sidebar-crate a.logo-container:hover+h2 a,.sidebar a:hover:not(.logo-container){background-color:var(--sidebar-current-link-background-color);}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;}.sidebar-crate{display:flex;align-items:center;justify-content:center;margin:14px 32px 1rem;row-gap:10px;column-gap:32px;flex-wrap:wrap;}.sidebar-crate h2{flex-grow:1;margin:0 -8px;align-self:start;}.sidebar-crate .logo-container{margin:0 -16px 0 -16px;text-align:center;}.sidebar-crate h2 a{display:block;margin:0 calc(-24px + 0.25rem) 0 -0.2rem;padding:calc((16px - 0.57rem ) / 2 ) 0.25rem;padding-left:0.2rem;}.sidebar-crate h2 .version{display:block;font-weight:normal;font-size:1rem;overflow-wrap:break-word;}.sidebar-crate+.version{margin-top:-1rem;margin-bottom:1rem;}.mobile-topbar{display:none;}.rustdoc .example-wrap{display:flex;position:relative;margin-bottom:10px;}.rustdoc .example-wrap:last-child{margin-bottom:0px;}.rustdoc .example-wrap pre{margin:0;flex-grow:1;}.rustdoc:not(.src) .example-wrap pre{overflow:auto hidden;}.rustdoc .example-wrap pre.example-line-numbers,.rustdoc .example-wrap pre.src-line-numbers{flex-grow:0;min-width:fit-content;overflow:initial;text-align:right;-webkit-user-select:none;user-select:none;padding:14px 8px;color:var(--src-line-numbers-span-color);}.rustdoc .example-wrap pre.src-line-numbers{padding:14px 0;}.src-line-numbers a,.src-line-numbers span{color:var(--src-line-numbers-span-color);padding:0 8px;}.src-line-numbers :target{background-color:transparent;border-right:none;padding:0 8px;}.src-line-numbers .line-highlighted{background-color:var(--src-line-number-highlighted-background-color);}.search-loading{text-align:center;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock :not(pre)>code,.docblock-short code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25rem;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.more-examples-toggle):not(.example-wrap){max-width:100%;overflow-x:auto;}.out-of-band{flex-grow:0;font-size:1.125rem;}.docblock code,.docblock-short code,pre,.rustdoc.src .example-wrap{background-color:var(--code-block-background-color);}#main-content{position:relative;}.docblock table{margin:.5em 0;border-collapse:collapse;}.docblock table td,.docblock table th{padding:.5em;border:1px solid var(--border-color);}.docblock table tbody tr:nth-child(2n){background:var(--table-alt-row-background-color);}div.where{white-space:pre-wrap;font-size:0.875rem;}.item-info{display:block;margin-left:24px;}.item-info code{font-size:0.875rem;}#main-content>.item-info{margin-left:0;}nav.sub{flex-grow:1;flex-flow:row nowrap;margin:4px 0 25px 0;display:flex;align-items:center;}.search-form{position:relative;display:flex;height:34px;flex-grow:1;}.src nav.sub{margin:0 0 15px 0;}.section-header{display:block;position:relative;}.section-header:hover>.anchor,.impl:hover>.anchor,.trait-impl:hover>.anchor,.variant:hover>.anchor{display:initial;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.section-header>.anchor{left:-15px;padding-right:8px;}h2.section-header>.anchor{padding-right:6px;}a.doc-anchor{color:var(--main-color);display:none;position:absolute;left:-17px;padding-right:5px;padding-left:3px;}*:hover>.doc-anchor{display:block;}.top-doc>.docblock>*:first-child>.doc-anchor{display:none !important;}.main-heading a:hover,.example-wrap .rust a:hover,.all-items a:hover,.docblock a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover:not(.doc-anchor),.docblock-short a:not(.test-arrow):not(.scrape-help):not(.tooltip):hover,.item-info a{text-decoration:underline;}.crate.block li.current a{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;padding:0;margin:0;}.item-table>li{display:table-row;}.item-table>li>div{display:table-cell;}.item-table>li>.item-name{padding-right:1.25rem;}.search-results-title{margin-top:0;white-space:nowrap;display:flex;align-items:baseline;}#crate-search-div{position:relative;min-width:5em;}#crate-search{min-width:115px;padding:0 23px 0 4px;max-width:100%;text-overflow:ellipsis;border:1px solid var(--border-color);border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;background-color:var(--main-background-color);color:inherit;line-height:1.5;font-weight:500;}#crate-search:hover,#crate-search:focus{border-color:var(--crate-search-hover-border);}#crate-search-div::after{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;content:"";background-repeat:no-repeat;background-size:20px;background-position:calc(100% - 2px) 56%;background-image:url('data:image/svg+xml, \ - ');filter:var(--crate-search-div-filter);}#crate-search-div:hover::after,#crate-search-div:focus-within::after{filter:var(--crate-search-div-hover-filter);}#crate-search>option{font-size:1rem;}.search-input{-webkit-appearance:none;outline:none;border:1px solid var(--border-color);border-radius:2px;padding:8px;font-size:1rem;flex-grow:1;background-color:var(--button-background-color);color:var(--search-color);}.search-input:focus{border-color:var(--search-input-focused-border-color);}.search-results{display:none;}.search-results.active{display:block;}.search-results>a{display:flex;margin-left:2px;margin-right:2px;border-bottom:1px solid var(--search-result-border-color);gap:1em;}.search-results>a>div.desc{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:2;}.search-results a:hover,.search-results a:focus{background-color:var(--search-result-link-focus-background-color);}.search-results .result-name{display:flex;align-items:center;justify-content:start;flex:3;}.search-results .result-name .alias{color:var(--search-results-alias-color);}.search-results .result-name .grey{color:var(--search-results-grey-color);}.search-results .result-name .typename{color:var(--search-results-grey-color);font-size:0.875rem;width:var(--search-typename-width);}.search-results .result-name .path{word-break:break-all;max-width:calc(100% - var(--search-typename-width));display:inline-block;}.search-results .result-name .path>*{display:inline;}.popover{position:absolute;top:100%;right:0;z-index:calc(var(--desktop-sidebar-z-index) + 1);margin-top:7px;border-radius:3px;border:1px solid var(--border-color);background-color:var(--main-background-color);color:var(--main-color);--popover-arrow-offset:11px;}.popover::before{content:'';position:absolute;right:var(--popover-arrow-offset);border:solid var(--border-color);border-width:1px 1px 0 0;background-color:var(--main-background-color);padding:4px;transform:rotate(-45deg);top:-5px;}.setting-line{margin:1.2em 0.6em;}.setting-radio input,.setting-check input{margin-right:0.3em;height:1.2rem;width:1.2rem;border:2px solid var(--settings-input-border-color);outline:none;-webkit-appearance:none;cursor:pointer;}.setting-radio input{border-radius:50%;}.setting-radio span,.setting-check span{padding-bottom:1px;}.setting-radio{margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;display:inline-flex;align-items:center;cursor:pointer;}.setting-radio+.setting-radio{margin-left:0.5em;}.setting-check{margin-right:20px;display:flex;align-items:center;cursor:pointer;}.setting-radio input:checked{box-shadow:inset 0 0 0 3px var(--main-background-color);background-color:var(--settings-input-color);}.setting-check input:checked{background-color:var(--settings-input-color);border-width:1px;content:url('data:image/svg+xml,\ - \ - ');}.setting-radio input:focus,.setting-check input:focus{box-shadow:0 0 1px 1px var(--settings-input-color);}.setting-radio input:checked:focus{box-shadow:inset 0 0 0 3px var(--main-background-color),0 0 2px 2px var(--settings-input-color);}.setting-radio input:hover,.setting-check input:hover{border-color:var(--settings-input-color) !important;}#help.popover{max-width:600px;--popover-arrow-offset:48px;}#help dt{float:left;clear:left;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{margin:10px 0;border-bottom:1px solid var(--border-color);padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid var(--border-color);}.side-by-side>div{width:50%;float:left;padding:0 20px 20px 17px;}.item-info .stab{display:block;padding:3px;margin-bottom:5px;}.item-name .stab{margin-left:0.3125em;}.stab{padding:0 2px;font-size:0.875rem;font-weight:normal;color:var(--main-color);background-color:var(--stab-background-color);width:fit-content;white-space:pre-wrap;border-radius:3px;display:inline;vertical-align:baseline;}.stab.portability>code{background:none;color:var(--stab-code-color);}.stab .emoji,.item-info .stab::before{font-size:1.25rem;}.stab .emoji{margin-right:0.3rem;}.item-info .stab::before{content:"\0";width:0;display:inline-block;color:transparent;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;float:right;}.rightside:not(a),.out-of-band{color:var(--right-side-color);}pre.rust{tab-size:4;-moz-tab-size:4;}pre.rust .kw{color:var(--code-highlight-kw-color);}pre.rust .kw-2{color:var(--code-highlight-kw-2-color);}pre.rust .lifetime{color:var(--code-highlight-lifetime-color);}pre.rust .prelude-ty{color:var(--code-highlight-prelude-color);}pre.rust .prelude-val{color:var(--code-highlight-prelude-val-color);}pre.rust .string{color:var(--code-highlight-string-color);}pre.rust .number{color:var(--code-highlight-number-color);}pre.rust .bool-val{color:var(--code-highlight-literal-color);}pre.rust .self{color:var(--code-highlight-self-color);}pre.rust .attr{color:var(--code-highlight-attribute-color);}pre.rust .macro,pre.rust .macro-nonterminal{color:var(--code-highlight-macro-color);}pre.rust .question-mark{font-weight:bold;color:var(--code-highlight-question-mark-color);}pre.rust .comment{color:var(--code-highlight-comment-color);}pre.rust .doccomment{color:var(--code-highlight-doc-comment-color);}.rustdoc.src .example-wrap pre.rust a{background:var(--codeblock-link-background);}.example-wrap.compile_fail,.example-wrap.should_panic{border-left:2px solid var(--codeblock-error-color);}.ignore.example-wrap{border-left:2px solid var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover,.example-wrap.should_panic:hover{border-left:2px solid var(--codeblock-error-hover-color);}.example-wrap.ignore:hover{border-left:2px solid var(--codeblock-ignore-hover-color);}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip{color:var(--codeblock-error-color);}.example-wrap.ignore .tooltip{color:var(--codeblock-ignore-color);}.example-wrap.compile_fail:hover .tooltip,.example-wrap.should_panic:hover .tooltip{color:var(--codeblock-error-hover-color);}.example-wrap.ignore:hover .tooltip{color:var(--codeblock-ignore-hover-color);}.example-wrap .tooltip{position:absolute;display:block;left:-25px;top:5px;margin:0;line-height:1;}.example-wrap.compile_fail .tooltip,.example-wrap.should_panic .tooltip,.example-wrap.ignore .tooltip{font-weight:bold;font-size:1.25rem;}.content .docblock .warning{border-left:2px solid var(--warning-border-color);padding:14px;position:relative;overflow-x:visible !important;}.content .docblock .warning::before{color:var(--warning-border-color);content:"ⓘ";position:absolute;left:-25px;top:5px;font-weight:bold;font-size:1.25rem;}.top-doc>.docblock>.warning:first-child::before{top:20px;}a.test-arrow{visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;color:var(--test-arrow-color);background-color:var(--test-arrow-background-color);}a.test-arrow:hover{color:var(--test-arrow-hover-color);background-color:var(--test-arrow-hover-background-color);}.example-wrap:hover .test-arrow{visibility:visible;}.code-attribute{font-weight:300;color:var(--code-attribute-color);}.item-spacer{width:100%;height:12px;display:block;}.out-of-band>span.since{font-size:1.25rem;}.sub-variant h4{font-size:1rem;font-weight:400;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}:target{padding-right:3px;background-color:var(--target-background-color);border-right:3px solid var(--target-border-color);}.code-header a.tooltip{color:inherit;margin-right:15px;position:relative;}.code-header a.tooltip:hover{color:var(--link-color);}a.tooltip:hover::after{position:absolute;top:calc(100% - 10px);left:-15px;right:-15px;height:20px;content:"\00a0";}.fade-out{opacity:0;transition:opacity 0.45s cubic-bezier(0,0,0.1,1.0);}.popover.tooltip .content{margin:0.25em 0.5em;}.popover.tooltip .content pre,.popover.tooltip .content code{background:transparent;margin:0;padding:0;font-size:1.25rem;white-space:pre-wrap;}.popover.tooltip .content>h3:first-child{margin:0 0 5px 0;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#search-tabs{display:flex;flex-direction:row;gap:1px;margin-bottom:4px;}#search-tabs button{text-align:center;font-size:1.125rem;border:0;border-top:2px solid;flex:1;line-height:1.5;color:inherit;}#search-tabs button:not(.selected){background-color:var(--search-tab-button-not-selected-background);border-top-color:var(--search-tab-button-not-selected-border-top-color);}#search-tabs button:hover,#search-tabs button.selected{background-color:var(--search-tab-button-selected-background);border-top-color:var(--search-tab-button-selected-border-top-color);}#search-tabs .count{font-size:1rem;font-variant-numeric:tabular-nums;color:var(--search-tab-title-count-color);}#search .error code{border-radius:3px;background-color:var(--search-error-code-background-color);}.search-corrections{font-weight:normal;}#src-sidebar{width:100%;overflow:auto;}#src-sidebar div.files>a:hover,details.dir-entry summary:hover,#src-sidebar div.files>a:focus,details.dir-entry summary:focus{background-color:var(--src-sidebar-background-hover);}#src-sidebar div.files>a.selected{background-color:var(--src-sidebar-background-selected);}.src-sidebar-title{position:sticky;top:0;display:flex;padding:8px 8px 0 48px;margin-bottom:7px;background:var(--sidebar-background-color);border-bottom:1px solid var(--border-color);}#settings-menu,#help-button{margin-left:4px;display:flex;}#sidebar-button{display:none;line-height:0;}.hide-sidebar #sidebar-button,.src #sidebar-button{display:flex;margin-right:4px;position:fixed;left:6px;height:34px;width:34px;background-color:var(--main-background-color);z-index:1;}.src #sidebar-button{left:8px;z-index:calc(var(--desktop-sidebar-z-index) + 1);}.hide-sidebar .src #sidebar-button{position:static;}#settings-menu>a,#help-button>a,#sidebar-button>a{display:flex;align-items:center;justify-content:center;background-color:var(--button-background-color);border:1px solid var(--border-color);border-radius:2px;color:var(--settings-button-color);font-size:20px;width:33px;}#settings-menu>a:hover,#settings-menu>a:focus,#help-button>a:hover,#help-button>a:focus,#sidebar-button>a:hover,#sidebar-button>a:focus{border-color:var(--settings-button-border-focus);}#settings-menu>a{line-height:0;font-size:0;}#settings-menu>a:before{content:url('data:image/svg+xml,\ - ');width:22px;height:22px;filter:var(--settings-menu-filter);}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}#copy-path{color:var(--copy-path-button-color);background:var(--main-background-color);height:34px;width:33px;margin-left:10px;padding:0;padding-left:2px;border:0;font-size:0;}#copy-path::before{filter:var(--copy-path-img-filter);content:url('data:image/svg+xml,\ -\ -\ -');width:19px;height:18px;}#copy-path:hover::before{filter:var(--copy-path-img-hover-filter);}#copy-path.clicked::before{content:url('data:image/svg+xml,\ - \ - ');}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate>a img{animation:rotating 2s linear infinite;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px var(--border-color);border-radius:3px;color:var(--kbd-color);background-color:var(--kbd-background);box-shadow:inset 0 -1px 0 var(--kbd-box-shadow-color);}ul.all-items>li{list-style:none;}details.dir-entry{padding-left:4px;}details.dir-entry>summary{margin:0 0 0 -4px;padding:0 0 0 4px;cursor:pointer;}details.dir-entry div.folders,details.dir-entry div.files{padding-left:23px;}details.dir-entry a{display:block;}details.toggle{contain:layout;position:relative;}details.toggle>summary.hideme{cursor:pointer;font-size:1rem;}details.toggle>summary{list-style:none;outline:none;}details.toggle>summary::-webkit-details-marker,details.toggle>summary::marker{display:none;}details.toggle>summary.hideme>span{margin-left:9px;}details.toggle>summary::before{background:url('data:image/svg+xml,') no-repeat top left;content:"";cursor:pointer;width:16px;height:16px;display:inline-block;vertical-align:middle;opacity:.5;filter:var(--toggle-filter);}details.toggle>summary.hideme>span,.more-examples-toggle summary,.more-examples-toggle .hide-more{color:var(--toggles-color);}details.toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.toggle>summary.hideme::after{content:"";}details.toggle>summary:focus::before,details.toggle>summary:hover::before{opacity:1;}details.toggle>summary:focus-visible::before{outline:1px dotted #000;outline-offset:1px;}details.non-exhaustive{margin-bottom:8px;}details.toggle>summary.hideme::before{position:relative;}details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.toggle[open] >summary.hideme{position:absolute;}details.toggle[open] >summary.hideme>span{display:none;}details.toggle[open] >summary::before{background:url('data:image/svg+xml,') no-repeat top left;}details.toggle[open] >summary::after{content:"Collapse";}.docblock summary>*{display:inline-block;}.docblock>.example-wrap:first-child .tooltip{margin-top:16px;}.src #sidebar-button>a:before,.sidebar-menu-toggle:before{content:url('data:image/svg+xml,\ - ');opacity:0.75;}.sidebar-menu-toggle:hover:before,.sidebar-menu-toggle:active:before,.sidebar-menu-toggle:focus:before{opacity:1;}.src #sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');opacity:0.75;}@media (max-width:850px){#search-tabs .count{display:block;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{display:block;}main{padding-left:15px;padding-top:0px;}.main-heading{flex-direction:column;}.out-of-band{text-align:left;margin-left:initial;padding:initial;}.out-of-band .since::before{content:"Since ";}.sidebar .logo-container,.sidebar .location,.sidebar-resizer{display:none;}.sidebar{position:fixed;top:45px;left:-1000px;z-index:11;height:calc(100vh - 45px);width:200px;}.src main,.rustdoc.src .sidebar{top:0;padding:0;height:100vh;border:0;}.src .search-form{margin-left:40px;}.hide-sidebar .search-form{margin-left:32px;}.hide-sidebar .src .search-form{margin-left:0;}.sidebar.shown,.src-sidebar-expanded .src .sidebar,.rustdoc:not(.src) .sidebar:focus-within{left:0;}.mobile-topbar h2{padding-bottom:0;margin:auto 0.5em auto auto;overflow:hidden;font-size:24px;white-space:nowrap;text-overflow:ellipsis;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin:5px 0 5px 20px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.hide-sidebar .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;border:none;line-height:0;}.hide-sidebar .sidebar-menu-toggle{display:none;}.sidebar-elems{margin-top:1em;}.anchor{display:none !important;}#main-content>details.toggle>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}#copy-path,#help-button{display:none;}#sidebar-button>a:before{content:url('data:image/svg+xml,\ - \ - \ - ');width:22px;height:22px;}.sidebar-menu-toggle:before{filter:var(--mobile-sidebar-menu-filter);}.sidebar-menu-toggle:hover{background:var(--main-background-color);}.item-table,.item-row,.item-table>li,.item-table>li>div,.search-results>a,.search-results>a>div{display:block;}.search-results>a{padding:5px 0px;}.search-results>a>div.desc,.item-table>li>div.desc{padding-left:2em;}.search-results .result-name{display:block;}.search-results .result-name .typename{width:initial;margin-right:0;}.search-results .result-name .typename,.search-results .result-name .path{display:inline;}.src-sidebar-expanded .src .sidebar{position:fixed;max-width:100vw;width:100vw;}.src .src-sidebar-title{padding-top:0;}details.toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.toggle>summary:not(.hideme)::before,#main-content>details.toggle:not(.top-doc)>summary::before,#main-content>div>details.toggle>summary::before{left:-11px;}.impl-items>.item-info{margin-left:34px;}.src nav.sub{margin:0;padding:var(--nav-sub-mobile-padding);}}@media (min-width:701px){.scraped-example-title{position:absolute;z-index:10;background:var(--main-background-color);bottom:8px;right:5px;padding:2px 4px;box-shadow:0 0 4px var(--main-background-color);}}@media print{nav.sidebar,nav.sub,.out-of-band,a.src,#copy-path,details.toggle[open] >summary::before,details.toggle>summary::before,details.toggle.top-doc>summary{display:none;}.docblock{margin-left:0;}main{padding:10px;}}@media (max-width:464px){.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}nav.sub{flex-direction:column;}.search-form{align-self:stretch;}}.variant,.implementors-toggle>summary,.impl,#implementors-list>.docblock,.impl-items>section,.impl-items>.toggle>summary,.methods>section,.methods>.toggle>summary{margin-bottom:0.75em;}.variants>.docblock,.implementors-toggle>.docblock,.impl-items>.toggle[open]:not(:last-child),.methods>.toggle[open]:not(:last-child),.implementors-toggle[open]:not(:last-child){margin-bottom:2em;}#trait-implementations-list .impl-items>.toggle:not(:last-child),#synthetic-implementations-list .impl-items>.toggle:not(:last-child),#blanket-implementations-list .impl-items>.toggle:not(:last-child){margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;border:1px solid var(--scrape-example-help-border-color);border-radius:50px;color:var(--scrape-example-help-color);}.scraped-example-list .scrape-help:hover{border-color:var(--scrape-example-help-hover-border-color);color:var(--scrape-example-help-hover-color);}.scraped-example{position:relative;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:calc(1.5em * 5 + 10px);}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;padding-bottom:0;max-height:calc(1.5em * 5 + 10px);}.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper,.more-scraped-examples .scraped-example:not(.expanded) .code-wrapper pre{max-height:calc(1.5em * 10 + 10px);}.scraped-example .code-wrapper .next,.scraped-example .code-wrapper .prev,.scraped-example .code-wrapper .expand{color:var(--main-color);position:absolute;top:0.25em;z-index:1;padding:0;background:none;border:none;-webkit-appearance:none;opacity:1;}.scraped-example .code-wrapper .prev{right:2.25em;}.scraped-example .code-wrapper .next{right:1.25em;}.scraped-example .code-wrapper .expand{right:0.25em;}.scraped-example:not(.expanded) .code-wrapper::before,.scraped-example:not(.expanded) .code-wrapper::after{content:" ";width:100%;height:5px;position:absolute;z-index:1;}.scraped-example:not(.expanded) .code-wrapper::before{top:0;background:linear-gradient(to bottom,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example:not(.expanded) .code-wrapper::after{bottom:0;background:linear-gradient(to top,var(--scrape-example-code-wrapper-background-start),var(--scrape-example-code-wrapper-background-end));}.scraped-example .code-wrapper .example-wrap{width:100%;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .example-wrap .rust span.highlight{background:var(--scrape-example-code-line-highlight);}.scraped-example .example-wrap .rust span.highlight.focus{background:var(--scrape-example-code-line-highlight-focus);}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;cursor:pointer;}.more-scraped-examples{margin-left:25px;position:relative;}.toggle-line{position:absolute;top:5px;bottom:0;right:calc(100% + 10px);padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;background:var(--scrape-example-toggle-line-background);}.toggle-line:hover .toggle-line-inner{background:var(--scrape-example-toggle-line-hover-background);}.more-scraped-examples .scraped-example,.example-links{margin-top:20px;}.more-scraped-examples .scraped-example:first-child{margin-top:5px;}.example-links ul{margin-bottom:0;}:root[data-theme="light"],:root:not([data-theme]){--main-background-color:white;--main-color:black;--settings-input-color:#2196f3;--settings-input-border-color:#717171;--settings-button-color:#000;--settings-button-border-focus:#717171;--sidebar-background-color:#f5f5f5;--sidebar-background-color-hover:#e0e0e0;--code-block-background-color:#f5f5f5;--scrollbar-track-background-color:#dcdcdc;--scrollbar-thumb-background-color:rgba(36,37,39,0.6);--scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;--headings-border-bottom-color:#ddd;--border-color:#e0e0e0;--button-background-color:#fff;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:none;--mobile-sidebar-menu-filter:none;--search-input-focused-border-color:#66afe9;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(35%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ad378a;--trait-link-color:#6e4fc9;--assoc-item-link-color:#3873ad;--function-link-color:#ad7c37;--macro-link-color:#068000;--keyword-link-color:#3873ad;--mod-link-color:#3873ad;--link-color:#3873ad;--sidebar-link-color:#356da4;--sidebar-current-link-background-color:#fff;--search-result-link-focus-background-color:#ccc;--search-result-border-color:#aaa3;--search-color:#000;--search-error-code-background-color:#d0cccc;--search-results-alias-color:#000;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#e6e6e6;--search-tab-button-not-selected-background:#e6e6e6;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#fff;--settings-menu-filter:none;--stab-background-color:#fff5d6;--stab-code-color:#000;--code-highlight-kw-color:#8959a8;--code-highlight-kw-2-color:#4271ae;--code-highlight-lifetime-color:#b76514;--code-highlight-prelude-color:#4271ae;--code-highlight-prelude-val-color:#c82829;--code-highlight-number-color:#718c00;--code-highlight-string-color:#718c00;--code-highlight-literal-color:#c82829;--code-highlight-attribute-color:#c82829;--code-highlight-self-color:#c82829;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8e908c;--code-highlight-doc-comment-color:#4d4d4c;--src-line-numbers-span-color:#c67e2d;--src-line-number-highlighted-background-color:#fdffd3;--test-arrow-color:#f5f5f5;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#f5f5f5;--test-arrow-hover-background-color:rgb(78,139,202);--target-background-color:#fdffd3;--target-border-color:#ad7c37;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:initial;--crate-search-div-filter:invert(100%) sepia(0%) saturate(4223%) hue-rotate(289deg) brightness(114%) contrast(76%);--crate-search-div-hover-filter:invert(44%) sepia(18%) saturate(23%) hue-rotate(317deg) brightness(96%) contrast(93%);--crate-search-hover-border:#717171;--src-sidebar-background-selected:#fff;--src-sidebar-background-hover:#e0e0e0;--table-alt-row-background-color:#f5f5f5;--codeblock-link-background:#eee;--scrape-example-toggle-line-background:#ccc;--scrape-example-toggle-line-hover-background:#999;--scrape-example-code-line-highlight:#fcffd6;--scrape-example-code-line-highlight-focus:#f6fdb0;--scrape-example-help-border-color:#555;--scrape-example-help-color:#333;--scrape-example-help-hover-border-color:#000;--scrape-example-help-hover-color:#000;--scrape-example-code-wrapper-background-start:rgba(255,255,255,1);--scrape-example-code-wrapper-background-end:rgba(255,255,255,0);--sidebar-resizer-hover:hsl(207,90%,66%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="dark"]{--main-background-color:#353535;--main-color:#ddd;--settings-input-color:#2196f3;--settings-input-border-color:#999;--settings-button-color:#000;--settings-button-border-focus:#ffb900;--sidebar-background-color:#505050;--sidebar-background-color-hover:#676767;--code-block-background-color:#2A2A2A;--scrollbar-track-background-color:#717171;--scrollbar-thumb-background-color:rgba(32,34,37,.6);--scrollbar-color:rgba(32,34,37,.6) #5a5a5a;--headings-border-bottom-color:#d2d2d2;--border-color:#e0e0e0;--button-background-color:#f0f0f0;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#008dfd;--copy-path-button-color:#999;--copy-path-img-filter:invert(50%);--copy-path-img-hover-filter:invert(65%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#2dbfb8;--trait-link-color:#b78cf2;--assoc-item-link-color:#d2991d;--function-link-color:#2bab63;--macro-link-color:#09bd00;--keyword-link-color:#d2991d;--mod-link-color:#d2991d;--link-color:#d2991d;--sidebar-link-color:#fdbf35;--sidebar-current-link-background-color:#444;--search-result-link-focus-background-color:#616161;--search-result-border-color:#aaa3;--search-color:#111;--search-error-code-background-color:#484848;--search-results-alias-color:#fff;--search-results-grey-color:#ccc;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:#252525;--search-tab-button-not-selected-background:#252525;--search-tab-button-selected-border-top-color:#0089ff;--search-tab-button-selected-background:#353535;--settings-menu-filter:none;--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ab8ac1;--code-highlight-kw-2-color:#769acb;--code-highlight-lifetime-color:#d97f26;--code-highlight-prelude-color:#769acb;--code-highlight-prelude-val-color:#ee6868;--code-highlight-number-color:#83a300;--code-highlight-string-color:#83a300;--code-highlight-literal-color:#ee6868;--code-highlight-attribute-color:#ee6868;--code-highlight-self-color:#ee6868;--code-highlight-macro-color:#3e999f;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#8d8d8b;--code-highlight-doc-comment-color:#8ca375;--src-line-numbers-span-color:#3b91e2;--src-line-number-highlighted-background-color:#0a042f;--test-arrow-color:#dedede;--test-arrow-background-color:rgba(78,139,202,0.2);--test-arrow-hover-color:#dedede;--test-arrow-hover-background-color:#4e8bca;--target-background-color:#494a3d;--target-border-color:#bb7410;--kbd-color:#000;--kbd-background:#fafbfc;--kbd-box-shadow-color:#c6cbd1;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(94%) sepia(0%) saturate(721%) hue-rotate(255deg) brightness(90%) contrast(90%);--crate-search-div-hover-filter:invert(69%) sepia(60%) saturate(6613%) hue-rotate(184deg) brightness(100%) contrast(91%);--crate-search-hover-border:#2196f3;--src-sidebar-background-selected:#333;--src-sidebar-background-hover:#444;--table-alt-row-background-color:#2a2a2a;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(53,53,53,1);--scrape-example-code-wrapper-background-end:rgba(53,53,53,0);--sidebar-resizer-hover:hsl(207,30%,54%);--sidebar-resizer-active:hsl(207,90%,54%);}:root[data-theme="ayu"]{--main-background-color:#0f1419;--main-color:#c5c5c5;--settings-input-color:#ffb454;--settings-input-border-color:#999;--settings-button-color:#fff;--settings-button-border-focus:#e0e0e0;--sidebar-background-color:#14191f;--sidebar-background-color-hover:rgba(70,70,70,0.33);--code-block-background-color:#191f26;--scrollbar-track-background-color:transparent;--scrollbar-thumb-background-color:#5c6773;--scrollbar-color:#5c6773 #24292f;--headings-border-bottom-color:#5c6773;--border-color:#5c6773;--button-background-color:#141920;--right-side-color:grey;--code-attribute-color:#999;--toggles-color:#999;--toggle-filter:invert(100%);--mobile-sidebar-menu-filter:invert(100%);--search-input-focused-border-color:#5c6773;--copy-path-button-color:#fff;--copy-path-img-filter:invert(70%);--copy-path-img-hover-filter:invert(100%);--codeblock-error-hover-color:rgb(255,0,0);--codeblock-error-color:rgba(255,0,0,.5);--codeblock-ignore-hover-color:rgb(255,142,0);--codeblock-ignore-color:rgba(255,142,0,.6);--warning-border-color:#ff8e00;--type-link-color:#ffa0a5;--trait-link-color:#39afd7;--assoc-item-link-color:#39afd7;--function-link-color:#fdd687;--macro-link-color:#a37acc;--keyword-link-color:#39afd7;--mod-link-color:#39afd7;--link-color:#39afd7;--sidebar-link-color:#53b1db;--sidebar-current-link-background-color:transparent;--search-result-link-focus-background-color:#3c3c3c;--search-result-border-color:#aaa3;--search-color:#fff;--search-error-code-background-color:#4f4c4c;--search-results-alias-color:#c5c5c5;--search-results-grey-color:#999;--search-tab-title-count-color:#888;--search-tab-button-not-selected-border-top-color:none;--search-tab-button-not-selected-background:transparent !important;--search-tab-button-selected-border-top-color:none;--search-tab-button-selected-background:#141920 !important;--settings-menu-filter:invert(100%);--stab-background-color:#314559;--stab-code-color:#e6e1cf;--code-highlight-kw-color:#ff7733;--code-highlight-kw-2-color:#ff7733;--code-highlight-lifetime-color:#ff7733;--code-highlight-prelude-color:#69f2df;--code-highlight-prelude-val-color:#ff7733;--code-highlight-number-color:#b8cc52;--code-highlight-string-color:#b8cc52;--code-highlight-literal-color:#ff7733;--code-highlight-attribute-color:#e6e1cf;--code-highlight-self-color:#36a3d9;--code-highlight-macro-color:#a37acc;--code-highlight-question-mark-color:#ff9011;--code-highlight-comment-color:#788797;--code-highlight-doc-comment-color:#a1ac88;--src-line-numbers-span-color:#5c6773;--src-line-number-highlighted-background-color:rgba(255,236,164,0.06);--test-arrow-color:#788797;--test-arrow-background-color:rgba(57,175,215,0.09);--test-arrow-hover-color:#c5c5c5;--test-arrow-hover-background-color:rgba(57,175,215,0.368);--target-background-color:rgba(255,236,164,0.06);--target-border-color:rgba(255,180,76,0.85);--kbd-color:#c5c5c5;--kbd-background:#314559;--kbd-box-shadow-color:#5c6773;--rust-logo-filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);--crate-search-div-filter:invert(41%) sepia(12%) saturate(487%) hue-rotate(171deg) brightness(94%) contrast(94%);--crate-search-div-hover-filter:invert(98%) sepia(12%) saturate(81%) hue-rotate(343deg) brightness(113%) contrast(76%);--crate-search-hover-border:#e0e0e0;--src-sidebar-background-selected:#14191f;--src-sidebar-background-hover:#14191f;--table-alt-row-background-color:#191f26;--codeblock-link-background:#333;--scrape-example-toggle-line-background:#999;--scrape-example-toggle-line-hover-background:#c5c5c5;--scrape-example-code-line-highlight:#5b3b01;--scrape-example-code-line-highlight-focus:#7c4b0f;--scrape-example-help-border-color:#aaa;--scrape-example-help-color:#eee;--scrape-example-help-hover-border-color:#fff;--scrape-example-help-hover-color:#fff;--scrape-example-code-wrapper-background-start:rgba(15,20,25,1);--scrape-example-code-wrapper-background-end:rgba(15,20,25,0);--sidebar-resizer-hover:hsl(34,50%,33%);--sidebar-resizer-active:hsl(34,100%,66%);}:root[data-theme="ayu"] h1,:root[data-theme="ayu"] h2,:root[data-theme="ayu"] h3,:root[data-theme="ayu"] h4,:where(:root[data-theme="ayu"]) h1 a,:root[data-theme="ayu"] .sidebar h2 a,:root[data-theme="ayu"] .sidebar h3 a{color:#fff;}:root[data-theme="ayu"] .docblock code{color:#ffb454;}:root[data-theme="ayu"] .docblock a>code{color:#39AFD7 !important;}:root[data-theme="ayu"] .code-header,:root[data-theme="ayu"] .docblock pre>code,:root[data-theme="ayu"] pre,:root[data-theme="ayu"] pre>code,:root[data-theme="ayu"] .item-info code,:root[data-theme="ayu"] .rustdoc.source .example-wrap{color:#e6e1cf;}:root[data-theme="ayu"] .sidebar .current,:root[data-theme="ayu"] .sidebar .current a,:root[data-theme="ayu"] .sidebar a:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:hover,:root[data-theme="ayu"] details.dir-entry summary:hover,:root[data-theme="ayu"] #src-sidebar div.files>a:focus,:root[data-theme="ayu"] details.dir-entry summary:focus,:root[data-theme="ayu"] #src-sidebar div.files>a.selected{color:#ffb44c;}:root[data-theme="ayu"] .sidebar-elems .location{color:#ff7733;}:root[data-theme="ayu"] .src-line-numbers .line-highlighted{color:#708090;padding-right:7px;border-right:1px solid #ffb44c;}:root[data-theme="ayu"] .search-results a:hover,:root[data-theme="ayu"] .search-results a:focus{color:#fff !important;background-color:#3c3c3c;}:root[data-theme="ayu"] .search-results a{color:#0096cf;}:root[data-theme="ayu"] .search-results a div.desc{color:#c5c5c5;}:root[data-theme="ayu"] .result-name .primitive>i,:root[data-theme="ayu"] .result-name .keyword>i{color:#788797;}:root[data-theme="ayu"] #search-tabs>button.selected{border-bottom:1px solid #ffb44c !important;border-top:none;}:root[data-theme="ayu"] #search-tabs>button:not(.selected){border:none;background-color:transparent !important;}:root[data-theme="ayu"] #search-tabs>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}:root[data-theme="ayu"] #settings-menu>a img,:root[data-theme="ayu"] #sidebar-button>a:before{filter:invert(100);} \ No newline at end of file diff --git a/static.files/search-d234aafac6c221dd.js b/static.files/search-d234aafac6c221dd.js new file mode 100644 index 000000000..3f587f657 --- /dev/null +++ b/static.files/search-d234aafac6c221dd.js @@ -0,0 +1,5 @@ +"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;const REGEX_IDENT=/\p{ID_Start}\p{ID_Continue}*|_\p{ID_Continue}+/uy;const REGEX_INVALID_TYPE_FILTER=/[^a-z]/ui;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 searchIndexDeprecated;let searchIndexEmptyDesc;let functionTypeFingerprint;let currentResults;const typeNameIdMap=new Map();const ALIASES=new Map();const typeNameIdOfArray=buildTypeMapIndex("array");const typeNameIdOfSlice=buildTypeMapIndex("slice");const typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");const typeNameIdOfTuple=buildTypeMapIndex("tuple");const typeNameIdOfUnit=buildTypeMapIndex("unit");const typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");const typeNameIdOfFn=buildTypeMapIndex("fn");const typeNameIdOfFnMut=buildTypeMapIndex("fnmut");const typeNameIdOfFnOnce=buildTypeMapIndex("fnonce");const typeNameIdOfHof=buildTypeMapIndex("->");function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function consumeIdent(parserState){REGEX_IDENT.lastIndex=parserState.pos;const match=parserState.userQuery.match(REGEX_IDENT);if(match){parserState.pos+=match[0].length;return true}return false}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){let afterIdent=consumeIdent(parserState);let end=parserState.pos;let macroExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]," (not a valid identifier)"]}else{throw["Unexpected ",c," (not a valid identifier)"]}parserState.pos+=1;afterIdent=consumeIdent(parserState);end=parserState.pos}if(macroExclamation!==-1){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=macroExclamation}return end}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else if(parserState.userQuery[parserState.pos]==="&"){if(parserState.typeFilter!==null&&parserState.typeFilter!=="primitive"){throw["Invalid search type: primitive ","&"," and ",parserState.typeFilter," both specified",]}parserState.typeFilter=null;parserState.pos+=1;let c=parserState.userQuery[parserState.pos];while(c===" "&&parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),)}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}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(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(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;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();const match=query.match(REGEX_INVALID_TYPE_FILTER);if(match){throw["Unexpected ",match[0]," in type filter (before ",":",")",]}}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===" "){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;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}async function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue}duplicates.add(obj.fullPath);duplicates.add(res[2]);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}async function sortResults(results,isType,preferredCrate){const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(passesUnification){return true}}return false},unboxingDepth,);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(queryElem.id===typeNameIdOfHof&&(fnType.id===typeNameIdOfFn||fnType.id===typeNameIdOfFnMut||fnType.id===typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth,);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth,)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}function checkType(row,elem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1,)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit&&elem.id!==typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth,)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,descShard:item.descShard,descIndex:item.descIndex,exactPath:item.exactPath,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,bitIndex:item.bitIndex,implDisambiguator:item.implDisambiguator,}}async 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{return searchIndexEmptyDesc.get(alias.crate).contains(alias.bitIndex)?"":searchState.loadDesc(alias)};const[crateDescs,descs]=await Promise.all([Promise.all(crateAliases.map(fetchDesc)),Promise.all(aliases.map(fetchDesc)),]);const pushFunc=alias=>{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((alias,i)=>{alias.desc=descs[i]});aliases.forEach(pushFunc);crateAliases.forEach((alias,i)=>{alias.desc=crateDescs[i]});crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance,){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint,);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0,)},0,)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){const loweredName=elem.pathLast.toLowerCase();if(typeNameIdMap.has(loweredName)&&(isAssocType||!typeNameIdMap.get(loweredName).assocOnly)){elem.id=typeNameIdMap.get(loweredName).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=Math.min(editDistance(name,loweredName,maxEditDistance),editDistance(name,elem.normalizedPathLast,maxEditDistance),);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}),)}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":searchState.loadDesc(result)}));for(const[i,result]of list.entries()){result.desc=descs[i]}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null}return ret}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;let exactPath=item.exactPath;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;exactPath=`${myparent.exactPath}::${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,`${exactPath}::${name}`]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;for(const item of array){const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ +${item.alias} - see \ +
    `}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ +${item.displayPath}${name}\ +
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)}}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
    "+"Try on DuckDuckGo?

    "+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}async function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),addTab(results.returned,results.query,false),]);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
    "}let output=`

    Results${crates}

    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

    Query parser error: "${error.join("")}".

    `;output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+"
    ";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
    "}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
    "+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
    ";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}async function search(forced){const query=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));await showResults(await execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,exactPath:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchTypeCallback(lowercasePaths){return functionSearchType=>{if(functionSearchType===0){return null}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[]}decodeList(){let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==125){ret.push(this.decode());c=this.string.charCodeAt(this.offset)}this.offset+=1;return ret}decode(){let n=0;let c=this.string.charCodeAt(this.offset);if(c===123){this.offset+=1;return this.decodeList()}while(c<96){n=(n<<4)|(c&0xF);this.offset+=1;c=this.string.charCodeAt(this.offset)}n=(n<<4)|(c&0xF);const[sign,value]=[n&1,n>>1];this.offset+=1;return sign?-value:value}next(){const c=this.string.charCodeAt(this.offset);if(c>=48&&c<64){this.offset+=1;return this.backrefQueue[c-48]}if(c===96){this.offset+=1;return this.cons(0)}const result=this.cons(this.decode());this.backrefQueue.unshift(result);if(this.backrefQueue.length>16){this.backrefQueue.pop()}return result}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;for(let i=0;i=start&&value<=(start+lenm1)){return true}}return false}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array}contains(value){const l=this.cardinality*2;for(let i=0;i>3]&(1<<(value&7)))}}function buildIndex(rawSearchIndex){searchIndex=[];searchIndexDeprecated=new Map();searchIndexEmptyDesc=new Map();let currentIndex=0;let id=0;for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const itemDescShardDecoder=new VlqHexDecoder(crateCorpus.D,noop=>noop);let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),bitIndex:0,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxs=crateCorpus.i;const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(lowercasePaths),);let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}const exactPath=elem.length>3?itemPaths.get(elem[3]):path;lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath});paths[i]={ty,name,path,exactPath}}lastPath="";len=itemTypes.length;for(let i=0;i=descShard.len&&!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard)}let word="";if(typeof itemNames[i]==="string"){word=itemNames[i].toLowerCase()}const path=itemPaths.has(i)?itemPaths.get(i):lastPath;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=functionTypeFingerprint.subarray(id*4,(id+1)*4);const fps=new Set();for(const t of type.inputs){buildFunctionTypeFingerprint(t,fp,fps)}for(const t of type.output){buildFunctionTypeFingerprint(t,fp,fps)}for(const w of type.where_clause){for(const t of w){buildFunctionTypeFingerprint(t,fp,fps)}}}}const row={crate,ty:itemTypes.charCodeAt(i)-65,name:itemNames[i],path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdxs[i]>0?paths[itemParentIdxs[i]-1]:undefined,type,id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),bitIndex,implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;if(!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1}}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length;searchState.descShards.set(crate,descShardList)}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/static.files/search-d52510db62a78183.js b/static.files/search-d52510db62a78183.js deleted file mode 100644 index a2824f297..000000000 --- a/static.files/search-d52510db62a78183.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict";if(!Array.prototype.toSpliced){Array.prototype.toSpliced=function(){const me=this.slice();Array.prototype.splice.apply(me,arguments);return me}}(function(){const itemTypes=["keyword","primitive","mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","associatedtype","constant","associatedconstant","union","foreigntype","existential","attr","derive","traitalias","generic",];const longItemTypes=["keyword","primitive type","module","extern crate","re-export","struct","enum","function","type alias","static","trait","","trait method","method","struct field","enum variant","macro","assoc type","constant","assoc const","union","foreign type","existential type","attribute macro","derive macro","trait alias",];const TY_GENERIC=itemTypes.indexOf("generic");const TY_IMPORT=itemTypes.indexOf("import");const ROOT_PATH=typeof window!=="undefined"?window.rootPath:"../";const UNBOXING_LIMIT=5;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 searchIndexDeprecated;let searchIndexEmptyDesc;let functionTypeFingerprint;let currentResults;const typeNameIdMap=new Map();const ALIASES=new Map();const typeNameIdOfArray=buildTypeMapIndex("array");const typeNameIdOfSlice=buildTypeMapIndex("slice");const typeNameIdOfArrayOrSlice=buildTypeMapIndex("[]");const typeNameIdOfTuple=buildTypeMapIndex("tuple");const typeNameIdOfUnit=buildTypeMapIndex("unit");const typeNameIdOfTupleOrUnit=buildTypeMapIndex("()");const typeNameIdOfFn=buildTypeMapIndex("fn");const typeNameIdOfFnMut=buildTypeMapIndex("fnmut");const typeNameIdOfFnOnce=buildTypeMapIndex("fnonce");const typeNameIdOfHof=buildTypeMapIndex("->");function buildTypeMapIndex(name,isAssocType){if(name===""||name===null){return null}if(typeNameIdMap.has(name)){const obj=typeNameIdMap.get(name);obj.assocOnly=isAssocType&&obj.assocOnly;return obj.id}else{const id=typeNameIdMap.size;typeNameIdMap.set(name,{id,assocOnly:isAssocType});return id}}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return"=,>-])".indexOf(c)!==-1}function itemTypeFromName(typename){const index=itemTypes.findIndex(i=>i===typename);if(index<0){throw["Unknown type filter ",typename]}return index}function getStringElem(query,parserState,isInGenerics){if(isInGenerics){throw["Unexpected ","\""," in generics"]}else if(query.literalSearch){throw["Cannot have more than one literal search element"]}else if(parserState.totalElems-parserState.genericsElems>0){throw["Cannot use literal search when there is more than one element"]}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw["Unclosed ","\""]}else if(parserState.userQuery[end]!=="\""){throw["Unexpected ",parserState.userQuery[end]," in a string element"]}else if(start===end){throw["Cannot have empty string element"]}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)==="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||c==="="}function isPathSeparator(c){return c===":"||c===" "}function prevIs(parserState,lookingFor){let pos=parserState.pos;while(pos>0){const c=parserState.userQuery[pos-1];if(c===lookingFor){return true}else if(c!==" "){break}pos-=1}return false}function isLastElemGeneric(elems,parserState){return(elems.length>0&&elems[elems.length-1].generics.length>0)||prevIs(parserState,">")}function skipWhitespace(parserState){while(parserState.pos0){throw["Cannot have more than one element if you use quotes"]}const typeFilter=parserState.typeFilter;parserState.typeFilter=null;if(name==="!"){if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive never type ","!"," and ",typeFilter," both specified",]}if(generics.length!==0){throw["Never type ","!"," does not accept generic parameters",]}const bindingName=parserState.isInBinding;parserState.isInBinding=null;return makePrimitiveElement("never",{bindingName})}const quadcolon=/::\s*::/.exec(path);if(path.startsWith("::")){throw["Paths cannot start with ","::"]}else if(path.endsWith("::")){throw["Paths cannot end with ","::"]}else if(quadcolon!==null){throw["Unexpected ",quadcolon[0]]}const pathSegments=path.split(/(?:::\s*)|(?:\s+(?:::\s*)?)/);if(pathSegments.length===0||(pathSegments.length===1&&pathSegments[0]==="")){if(generics.length>0||prevIs(parserState,">")){throw["Found generics without a path"]}else{throw["Unexpected ",parserState.userQuery[parserState.pos]]}}for(const[i,pathSegment]of pathSegments.entries()){if(pathSegment==="!"){if(i!==0){throw["Never type ","!"," is not associated item"]}pathSegments[i]="never"}}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}const bindingName=parserState.isInBinding;parserState.isInBinding=null;const bindings=new Map();const pathLast=pathSegments[pathSegments.length-1];return{name:name.trim(),id:null,fullPath:pathSegments,pathWithoutLast:pathSegments.slice(0,pathSegments.length-1),pathLast,normalizedPathLast:pathLast.replace(/_/g,""),generics:generics.filter(gen=>{if(gen.bindingName!==null){if(gen.name!==null){gen.bindingName.generics.unshift(gen)}bindings.set(gen.bindingName.name,gen.bindingName.generics);return false}return true}),bindings,typeFilter,bindingName,}}function getIdentEndPosition(parserState){const start=parserState.pos;let end=parserState.pos;let foundExclamation=-1;while(parserState.pos0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}else{throw["Unexpected ",c]}}parserState.pos+=1;end=parserState.pos}if(foundExclamation!==-1&&foundExclamation!==start&&isIdentCharacter(parserState.userQuery[foundExclamation-1])){if(parserState.typeFilter===null){parserState.typeFilter="macro"}else if(parserState.typeFilter!=="macro"){throw["Invalid search type: macro ","!"," and ",parserState.typeFilter," both specified",]}end=foundExclamation}return end}function getFilteredNextElem(query,parserState,elems,isInGenerics){const start=parserState.pos;if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){throw["Expected type filter before ",":"]}getNextElem(query,parserState,elems,isInGenerics);if(parserState.userQuery[parserState.pos]===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}if(elems.length===0){throw["Expected type filter before ",":"]}else if(query.literalSearch){throw["Cannot use quotes on type filter"]}const typeFilterElem=elems.pop();checkExtraTypeFilterCharacters(start,parserState);parserState.typeFilter=typeFilterElem.name;parserState.pos+=1;parserState.totalElems-=1;query.literalSearch=false;getNextElem(query,parserState,elems,isInGenerics)}}function getNextElem(query,parserState,elems,isInGenerics){const generics=[];skipWhitespace(parserState);let start=parserState.pos;let end;if("[(".indexOf(parserState.userQuery[parserState.pos])!==-1){let endChar=")";let name="()";let friendlyName="tuple";if(parserState.userQuery[parserState.pos]==="["){endChar="]";name="[]";friendlyName="slice"}parserState.pos+=1;const{foundSeparator}=getItemsBefore(query,parserState,generics,endChar);const typeFilter=parserState.typeFilter;const bindingName=parserState.isInBinding;parserState.typeFilter=null;parserState.isInBinding=null;for(const gen of generics){if(gen.bindingName!==null){throw["Type parameter ","=",` cannot be within ${friendlyName} `,name]}}if(name==="()"&&!foundSeparator&&generics.length===1&&typeFilter===null){elems.push(generics[0])}else if(name==="()"&&generics.length===1&&generics[0].name==="->"){generics[0].typeFilter=typeFilter;elems.push(generics[0])}else{if(typeFilter!==null&&typeFilter!=="primitive"){throw["Invalid search type: primitive ",name," and ",typeFilter," both specified",]}parserState.totalElems+=1;if(isInGenerics){parserState.genericsElems+=1}elems.push(makePrimitiveElement(name,{bindingName,generics}))}}else if(parserState.userQuery[parserState.pos]==="&"){if(parserState.typeFilter!==null&&parserState.typeFilter!=="primitive"){throw["Invalid search type: primitive ","&"," and ",parserState.typeFilter," both specified",]}parserState.typeFilter=null;parserState.pos+=1;let c=parserState.userQuery[parserState.pos];while(c===" "&&parserState.pos=end){throw["Found generics without a path"]}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}else if(parserState.pos=end){throw["Found generics without a path"]}if(parserState.isInBinding){throw["Unexpected ","("," after ","="]}parserState.pos+=1;const typeFilter=parserState.typeFilter;parserState.typeFilter=null;getItemsBefore(query,parserState,generics,")");skipWhitespace(parserState);if(isReturnArrow(parserState)){parserState.pos+=2;skipWhitespace(parserState);getFilteredNextElem(query,parserState,generics,isInGenerics);generics[generics.length-1].bindingName=makePrimitiveElement("output")}else{generics.push(makePrimitiveElement(null,{bindingName:makePrimitiveElement("output"),typeFilter:null,}))}parserState.typeFilter=typeFilter}if(isStringElem){skipWhitespace(parserState)}if(start>=end&&generics.length===0){return}if(parserState.userQuery[parserState.pos]==="="){if(parserState.isInBinding){throw["Cannot write ","="," twice in a binding"]}if(!isInGenerics){throw["Type parameter ","="," must be within generics list"]}const name=parserState.userQuery.slice(start,end).trim();if(name==="!"){throw["Type parameter ","="," key cannot be ","!"," never type"]}if(name.includes("!")){throw["Type parameter ","="," key cannot be ","!"," macro"]}if(name.includes("::")){throw["Type parameter ","="," key cannot contain ","::"," path"]}if(name.includes(":")){throw["Type parameter ","="," key cannot contain ",":"," type"]}parserState.isInBinding={name,generics}}else{elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics,),)}}}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;let foundSeparator=false;const oldTypeFilter=parserState.typeFilter;parserState.typeFilter=null;const oldIsInBinding=parserState.isInBinding;parserState.isInBinding=null;let hofParameters=null;let extra="";if(endChar===">"){extra="<"}else if(endChar==="]"){extra="["}else if(endChar===")"){extra="("}else if(endChar===""){extra="->"}else{extra=endChar}while(parserState.pos"," after ","="]}hofParameters=[...elems];elems.length=0;parserState.pos+=2;foundStopChar=true;foundSeparator=false;continue}else if(c===" "){parserState.pos+=1;continue}else if(isSeparatorCharacter(c)){parserState.pos+=1;foundStopChar=true;foundSeparator=true;continue}else if(c===":"&&isPathStart(parserState)){throw["Unexpected ","::",": paths cannot start with ","::"]}else if(isEndCharacter(c)){throw["Unexpected ",c," after ",extra]}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(endChar!==""){throw["Expected ",",",", ","=",", or ",endChar,...extra,", found ",c,]}throw["Expected ",","," or ","=",...extra,", found ",c,]}const posBefore=parserState.pos;getFilteredNextElem(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;if(hofParameters){foundSeparator=false;if([...elems,...hofParameters].some(x=>x.bindingName)||parserState.isInBinding){throw["Unexpected ","="," within ","->"]}const hofElem=makePrimitiveElement("->",{generics:hofParameters,bindings:new Map([["output",[...elems]]]),typeFilter:null,});elems.length=0;elems[0]=hofElem}parserState.typeFilter=oldTypeFilter;parserState.isInBinding=oldIsInBinding;return{foundSeparator}}function checkExtraTypeFilterCharacters(start,parserState){const query=parserState.userQuery.slice(start,parserState.pos).trim();for(const c in query){if(!isIdentCharacter(query[c])){throw["Unexpected ",query[c]," in type filter (before ",":",")",]}}}function parseInput(query,parserState){let foundStopChar=true;while(parserState.pos"){if(isReturnArrow(parserState)){break}throw["Unexpected ",c," (did you mean ","->","?)"]}else if(parserState.pos>0){throw["Unexpected ",c," after ",parserState.userQuery[parserState.pos-1]]}throw["Unexpected ",c]}else if(c===" "){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;getFilteredNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}if(parserState.typeFilter!==null){throw["Unexpected ",":"," (expected path after type filter ",parserState.typeFilter+":",")",]}while(parserState.pos"]}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),elems:[],returned:[],foundElems:0,totalElems:0,literalSearch:false,error:null,correction:null,proposeCorrectionFrom:null,proposeCorrectionTo:null,typeFingerprint:new Uint32Array(4),}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="all crates"&&rawSearchIndex.has(elem.value)){return elem.value}return null}function parseQuery(userQuery){function convertTypeFilterOnElem(elem){if(elem.typeFilter!==null){let typeFilter=elem.typeFilter;if(typeFilter==="const"){typeFilter="constant"}elem.typeFilter=itemTypeFromName(typeFilter)}else{elem.typeFilter=NO_TYPE_FILTER}for(const elem2 of elem.generics){convertTypeFilterOnElem(elem2)}for(const constraints of elem.bindings.values()){for(const constraint of constraints){convertTypeFilterOnElem(constraint)}}}userQuery=userQuery.trim().replace(/\r|\n|\t/g," ");const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,isInBinding:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);for(const elem of query.elems){convertTypeFilterOnElem(elem)}for(const elem of query.returned){convertTypeFilterOnElem(elem)}}catch(err){query=newParsedQuery(userQuery);query.error=err;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;query.totalElems=parserState.totalElems;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}async function execQuery(parsedQuery,filterCrates,currentCrate){const results_others=new Map(),results_in_args=new Map(),results_returned=new Map();function transformResults(results){const duplicates=new Set();const out=[];for(const result of results){if(result.id!==-1){const obj=searchIndex[result.id];obj.dist=result.dist;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=res[2]+"|"+obj.ty;if(duplicates.has(obj.fullPath)){continue}if(obj.ty===TY_IMPORT&&duplicates.has(res[2])){continue}if(duplicates.has(res[2]+"|"+TY_IMPORT)){continue}duplicates.add(obj.fullPath);duplicates.add(res[2]);obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}async function sortResults(results,isType,preferredCrate){const userQuery=parsedQuery.userQuery;const result_list=[];for(const result of results.values()){result.item=searchIndex[result.id];result.word=searchIndex[result.id].word;result_list.push(result)}result_list.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.path_dist;b=bbb.path_dist;if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}a=(aaa.dist);b=(bbb.dist);if(a!==b){return a-b}a=searchIndexDeprecated.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexDeprecated.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=(aaa.item.crate!==preferredCrate);b=(bbb.item.crate!==preferredCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=searchIndexEmptyDesc.get(aaa.item.crate).contains(aaa.item.bitIndex);b=searchIndexEmptyDesc.get(bbb.item.crate).contains(bbb.item.bitIndex);if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});return transformResults(result_list)}function unifyFunctionTypes(fnTypesIn,queryElems,whereClause,mgensIn,solutionCb,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}const mgens=mgensIn===null?null:new Map(mgensIn);if(queryElems.length===0){return!solutionCb||solutionCb(mgens)}if(!fnTypesIn||fnTypesIn.length===0){return false}const ql=queryElems.length;const fl=fnTypesIn.length;if(ql===1&&queryElems[0].generics.length===0&&queryElems[0].bindings.size===0){const queryElem=queryElems[0];for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}if(fnType.id<0&&queryElem.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==queryElem.id){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,queryElem.id);if(!solutionCb||solutionCb(mgensScratch)){return true}}else if(!solutionCb||solutionCb(mgens?new Map(mgens):null)){return true}}for(const fnType of fnTypesIn){if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}if(fnType.id<0){if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){continue}const mgensScratch=new Map(mgens);mgensScratch.set(fnType.id,0);if(unifyFunctionTypes(whereClause[(-fnType.id)-1],queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,)){return true}}else if(unifyFunctionTypes([...fnType.generics,...Array.from(fnType.bindings.values()).flat()],queryElems,whereClause,mgens?new Map(mgens):null,solutionCb,unboxingDepth+1,)){return true}}return false}const fnTypes=fnTypesIn.slice();const flast=fl-1;const qlast=ql-1;const queryElem=queryElems[qlast];let queryElemsTmp=null;for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgens)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==queryElem.id){continue}mgensScratch.set(fnType.id,queryElem.id)}else{mgensScratch=mgens}fnTypes[i]=fnTypes[flast];fnTypes.length=flast;if(!queryElemsTmp){queryElemsTmp=queryElems.slice(0,qlast)}const passesUnification=unifyFunctionTypes(fnTypes,queryElemsTmp,whereClause,mgensScratch,mgensScratch=>{if(fnType.generics.length===0&&queryElem.generics.length===0&&fnType.bindings.size===0&&queryElem.bindings.size===0){return!solutionCb||solutionCb(mgensScratch)}const solution=unifyFunctionTypeCheckBindings(fnType,queryElem,whereClause,mgensScratch,unboxingDepth,);if(!solution){return false}const simplifiedGenerics=solution.simplifiedGenerics;for(const simplifiedMgens of solution.mgens){const passesUnification=unifyFunctionTypes(simplifiedGenerics,queryElem.generics,whereClause,simplifiedMgens,solutionCb,unboxingDepth,);if(passesUnification){return true}}return false},unboxingDepth,);if(passesUnification){return true}fnTypes[flast]=fnTypes[i];fnTypes[i]=fnType;fnTypes.length=fl}for(let i=flast;i>=0;i-=1){const fnType=fnTypes[i];if(!unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth+1,)){continue}let mgensScratch;if(fnType.id<0){mgensScratch=new Map(mgens);if(mgensScratch.has(fnType.id)&&mgensScratch.get(fnType.id)!==0){continue}mgensScratch.set(fnType.id,0)}else{mgensScratch=mgens}const generics=fnType.id<0?whereClause[(-fnType.id)-1]:fnType.generics;const bindings=fnType.bindings?Array.from(fnType.bindings.values()).flat():[];const passesUnification=unifyFunctionTypes(fnTypes.toSpliced(i,1,...generics,...bindings),queryElems,whereClause,mgensScratch,solutionCb,unboxingDepth+1,);if(passesUnification){return true}}return false}function unifyFunctionTypeIsMatchCandidate(fnType,queryElem,mgensIn){if(!typePassesFilter(queryElem.typeFilter,fnType.ty)){return false}if(fnType.id<0&&queryElem.id<0){if(mgensIn){if(mgensIn.has(fnType.id)&&mgensIn.get(fnType.id)!==queryElem.id){return false}for(const[fid,qid]of mgensIn.entries()){if(fnType.id!==fid&&queryElem.id===qid){return false}if(fnType.id===fid&&queryElem.id!==qid){return false}}}return true}else{if(queryElem.id===typeNameIdOfArrayOrSlice&&(fnType.id===typeNameIdOfSlice||fnType.id===typeNameIdOfArray)){}else if(queryElem.id===typeNameIdOfTupleOrUnit&&(fnType.id===typeNameIdOfTuple||fnType.id===typeNameIdOfUnit)){}else if(queryElem.id===typeNameIdOfHof&&(fnType.id===typeNameIdOfFn||fnType.id===typeNameIdOfFnMut||fnType.id===typeNameIdOfFnOnce)){}else if(fnType.id!==queryElem.id||queryElem.id===null){return false}if((fnType.generics.length+fnType.bindings.size)===0&&queryElem.generics.length!==0){return false}if(fnType.bindings.size0){const fnTypePath=fnType.path!==undefined&&fnType.path!==null?fnType.path.split("::"):[];if(queryElemPathLength>fnTypePath.length){return false}let i=0;for(const path of fnTypePath){if(path===queryElem.pathWithoutLast[i]){i+=1;if(i>=queryElemPathLength){break}}}if(i0){let mgensSolutionSet=[mgensIn];for(const[name,constraints]of queryElem.bindings.entries()){if(mgensSolutionSet.length===0){return false}if(!fnType.bindings.has(name)){return false}const fnTypeBindings=fnType.bindings.get(name);mgensSolutionSet=mgensSolutionSet.flatMap(mgens=>{const newSolutions=[];unifyFunctionTypes(fnTypeBindings,constraints,whereClause,mgens,newMgens=>{newSolutions.push(newMgens);return false},unboxingDepth,);return newSolutions})}if(mgensSolutionSet.length===0){return false}const binds=Array.from(fnType.bindings.entries()).flatMap(entry=>{const[name,constraints]=entry;if(queryElem.bindings.has(name)){return[]}else{return constraints}});if(simplifiedGenerics.length>0){simplifiedGenerics=[...simplifiedGenerics,...binds]}else{simplifiedGenerics=binds}return{simplifiedGenerics,mgens:mgensSolutionSet}}return{simplifiedGenerics,mgens:[mgensIn]}}function unifyFunctionTypeIsUnboxCandidate(fnType,queryElem,whereClause,mgens,unboxingDepth,){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(fnType.id<0&&queryElem.id>=0){if(!whereClause){return false}if(mgens&&mgens.has(fnType.id)&&mgens.get(fnType.id)!==0){return false}const mgensTmp=new Map(mgens);mgensTmp.set(fnType.id,null);return checkIfInList(whereClause[(-fnType.id)-1],queryElem,whereClause,mgensTmp,unboxingDepth,)}else if(fnType.generics.length>0||fnType.bindings.size>0){const simplifiedGenerics=[...fnType.generics,...Array.from(fnType.bindings.values()).flat(),];return checkIfInList(simplifiedGenerics,queryElem,whereClause,mgens,unboxingDepth,)}return false}function checkIfInList(list,elem,whereClause,mgens,unboxingDepth){for(const entry of list){if(checkType(entry,elem,whereClause,mgens,unboxingDepth)){return true}}return false}function checkType(row,elem,whereClause,mgens,unboxingDepth){if(unboxingDepth>=UNBOXING_LIMIT){return false}if(row.bindings.size===0&&elem.bindings.size===0){if(elem.id<0&&mgens===null){return row.id<0||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth+1,)}if(row.id>0&&elem.id>0&&elem.pathWithoutLast.length===0&&typePassesFilter(elem.typeFilter,row.ty)&&elem.generics.length===0&&elem.id!==typeNameIdOfArrayOrSlice&&elem.id!==typeNameIdOfTupleOrUnit&&elem.id!==typeNameIdOfHof){return row.id===elem.id||checkIfInList(row.generics,elem,whereClause,mgens,unboxingDepth,)}}return unifyFunctionTypes([row],[elem],whereClause,mgens,null,unboxingDepth)}function checkPath(contains,ty){if(contains.length===0){return 0}const maxPathEditDistance=Math.floor(contains.reduce((acc,next)=>acc+next.length,0)/3,);let ret_dist=maxPathEditDistance+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;pathiter:for(let i=length-clength;i>=0;i-=1){let dist_total=0;for(let x=0;xmaxPathEditDistance){continue pathiter}dist_total+=dist}}ret_dist=Math.min(ret_dist,Math.round(dist_total/clength))}return ret_dist>maxPathEditDistance?null:ret_dist}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,descShard:item.descShard,descIndex:item.descIndex,exactPath:item.exactPath,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,bitIndex:item.bitIndex,implDisambiguator:item.implDisambiguator,}}function handleAliases(ret,query,filterCrates,currentCrate){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES.has(filterCrates)&&ALIASES.get(filterCrates).has(lowerQuery)){const query_aliases=ALIASES.get(filterCrates).get(lowerQuery);for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{for(const[crate,crateAliasesIndex]of ALIASES){if(crateAliasesIndex.has(lowerQuery)){const pushTo=crate===currentCrate?crateAliases:aliases;const query_aliases=crateAliasesIndex.get(lowerQuery);for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}}}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};aliases.forEach(pushFunc);crateAliases.forEach(pushFunc)}function addIntoResults(results,fullId,id,index,dist,path_dist,maxEditDistance){if(dist<=maxEditDistance||index!==-1){if(results.has(fullId)){const result=results.get(fullId);if(result.dontValidate||result.dist<=dist){return}}results.set(fullId,{id:id,index:index,dontValidate:parsedQuery.literalSearch,dist:dist,path_dist:path_dist,})}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned,maxEditDistance,){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let path_dist=0;const fullId=row.id;const tfpDist=compareTypeFingerprints(fullId,parsedQuery.typeFingerprint,);if(tfpDist!==null){const in_args=row.type&&row.type.inputs&&checkIfInList(row.type.inputs,elem,row.type.where_clause,null,0);const returned=row.type&&row.type.output&&checkIfInList(row.type.output,elem,row.type.where_clause,null,0);if(in_args){results_in_args.max_dist=Math.max(results_in_args.max_dist||0,tfpDist);const maxDist=results_in_args.sizenormalizedIndex&&normalizedIndex!==-1)){index=normalizedIndex}if(elem.fullPath.length>1){path_dist=checkPath(elem.pathWithoutLast,row);if(path_dist===null){return}}if(parsedQuery.literalSearch){if(row.word===elem.pathLast){addIntoResults(results_others,fullId,pos,index,0,path_dist)}return}const dist=editDistance(row.normalizedName,elem.normalizedPathLast,maxEditDistance);if(index===-1&&dist>maxEditDistance){return}addIntoResults(results_others,fullId,pos,index,dist,path_dist,maxEditDistance)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)||!row.type){return}const tfpDist=compareTypeFingerprints(row.id,parsedQuery.typeFingerprint,);if(tfpDist===null){return}if(results.size>=MAX_RESULTS&&tfpDist>results.max_dist){return}if(!unifyFunctionTypes(row.type.inputs,parsedQuery.elems,row.type.where_clause,null,mgens=>{return unifyFunctionTypes(row.type.output,parsedQuery.returned,row.type.where_clause,mgens,null,0,)},0,)){return}results.max_dist=Math.max(results.max_dist||0,tfpDist);addIntoResults(results,row.id,pos,0,tfpDist,0,Number.MAX_VALUE)}function innerRunQuery(){const queryLen=parsedQuery.elems.reduce((acc,next)=>acc+next.pathLast.length,0)+parsedQuery.returned.reduce((acc,next)=>acc+next.pathLast.length,0);const maxEditDistance=Math.floor(queryLen/3);const genericSymbols=new Map();function convertNameToId(elem,isAssocType){if(typeNameIdMap.has(elem.normalizedPathLast)&&(isAssocType||!typeNameIdMap.get(elem.normalizedPathLast).assocOnly)){elem.id=typeNameIdMap.get(elem.normalizedPathLast).id}else if(!parsedQuery.literalSearch){let match=null;let matchDist=maxEditDistance+1;let matchName="";for(const[name,{id,assocOnly}]of typeNameIdMap){const dist=editDistance(name,elem.normalizedPathLast,maxEditDistance);if(dist<=matchDist&&dist<=maxEditDistance&&(isAssocType||!assocOnly)){if(dist===matchDist&&matchName>name){continue}match=id;matchDist=dist;matchName=name}}if(match!==null){parsedQuery.correction=matchName}elem.id=match}if((elem.id===null&&parsedQuery.totalElems>1&&elem.typeFilter===-1&&elem.generics.length===0&&elem.bindings.size===0)||elem.typeFilter===TY_GENERIC){if(genericSymbols.has(elem.name)){elem.id=genericSymbols.get(elem.name)}else{elem.id=-(genericSymbols.size+1);genericSymbols.set(elem.name,elem.id)}if(elem.typeFilter===-1&&elem.name.length>=3){const maxPartDistance=Math.floor(elem.name.length/3);let matchDist=maxPartDistance+1;let matchName="";for(const name of typeNameIdMap.keys()){const dist=editDistance(name,elem.name,maxPartDistance);if(dist<=matchDist&&dist<=maxPartDistance){if(dist===matchDist&&matchName>name){continue}matchDist=dist;matchName=name}}if(matchName!==""){parsedQuery.proposeCorrectionFrom=elem.name;parsedQuery.proposeCorrectionTo=matchName}}elem.typeFilter=TY_GENERIC}if(elem.generics.length>0&&elem.typeFilter===TY_GENERIC){parsedQuery.error=["Generic type parameter ",elem.name," does not accept generic parameters",]}for(const elem2 of elem.generics){convertNameToId(elem2)}elem.bindings=new Map(Array.from(elem.bindings.entries()).map(entry=>{const[name,constraints]=entry;if(!typeNameIdMap.has(name)){parsedQuery.error=["Type parameter ",name," does not exist",];return[null,[]]}for(const elem2 of constraints){convertNameToId(elem2)}return[typeNameIdMap.get(name).id,constraints]}),)}const fps=new Set();for(const elem of parsedQuery.elems){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}for(const elem of parsedQuery.returned){convertNameToId(elem);buildFunctionTypeFingerprint(elem,parsedQuery.typeFingerprint,fps)}if(parsedQuery.foundElems===1&&parsedQuery.returned.length===0){if(parsedQuery.elems.length===1){const elem=parsedQuery.elems[0];for(let i=0,nSearchIndex=searchIndex.length;i0){const sortQ=(a,b)=>{const ag=a.generics.length===0&&a.bindings.size===0;const bg=b.generics.length===0&&b.bindings.size===0;if(ag!==bg){return ag-bg}const ai=a.id>0;const bi=b.id>0;return ai-bi};parsedQuery.elems.sort(sortQ);parsedQuery.returned.sort(sortQ);for(let i=0,nSearchIndex=searchIndex.length;i{const descs=await Promise.all(list.map(result=>{return searchIndexEmptyDesc.get(result.crate).contains(result.bitIndex)?"":searchState.loadDesc(result)}));for(const[i,result]of list.entries()){result.desc=descs[i]}}));if(parsedQuery.error!==null&&ret.others.length!==0){ret.query.error=null}return ret}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;let exactPath=item.exactPath;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;exactPath=`${myparent.exactPath}::${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,`${exactPath}::${name}`]}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}async function addTab(array,query,display){const extraClass=display?" active":"";const output=document.createElement("div");if(array.length>0){output.className="search-results "+extraClass;for(const item of array){const name=item.name;const type=itemTypes[item.ty];const longType=longItemTypes[item.ty];const typeName=longType.length!==0?`${longType}`:"?";const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const resultName=document.createElement("div");resultName.className="result-name";resultName.insertAdjacentHTML("beforeend",`${typeName}`);link.appendChild(resultName);let alias=" ";if(item.is_alias){alias=`
    \ -${item.alias} - see \ -
    `}resultName.insertAdjacentHTML("beforeend",`
    ${alias}\ -${item.displayPath}${name}\ -
    `);const description=document.createElement("div");description.className="desc";description.insertAdjacentHTML("beforeend",item.desc);link.appendChild(description);output.appendChild(link)}}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
    "+"Try on DuckDuckGo?

    "+"Or try looking in one of these:"}return[output,array.length]}function makeTabHeader(tabNb,text,nbElems){const fmtNbElems=nbElems<10?`\u{2007}(${nbElems})\u{2007}\u{2007}`:nbElems<100?`\u{2007}(${nbElems})\u{2007}`:`\u{2007}(${nbElems})`;if(searchState.currentTab===tabNb){return""}return""}async function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true")){window.onunload=()=>{};searchState.removeQueryParameters();const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const[ret_others,ret_in_args,ret_returned]=await Promise.all([addTab(results.others,results.query,true),addTab(results.in_args,results.query,false),addTab(results.returned,results.query,false),]);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(rawSearchIndex.size>1){crates=" in 
    "}let output=`

    Results${crates}

    `;if(results.query.error!==null){const error=results.query.error;error.forEach((value,index)=>{value=value.split("<").join("<").split(">").join(">");if(index%2!==0){error[index]=`${value.replaceAll(" ", " ")}`}else{error[index]=value}});output+=`

    Query parser error: "${error.join("")}".

    `;output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+"
    ";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
    "+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
    "}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
    "+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
    ";currentTab=0}if(results.query.correction!==null){const orig=results.query.returned.length>0?results.query.returned[0].name:results.query.elems[0].name;output+="

    "+`Type "${orig}" not found. `+"Showing results for closest type name "+`"${results.query.correction}" instead.

    `}if(results.query.proposeCorrectionFrom!==null){const orig=results.query.proposeCorrectionFrom;const targ=results.query.proposeCorrectionTo;output+="

    "+`Type "${orig}" not found and used as generic parameter. `+`Consider searching for "${targ}" instead.

    `}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("search-tabs").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>printTab(j);searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function updateSearchHistory(url){if(!browserSupportsHistoryApi()){return}const params=searchState.getQueryStringParams();if(!history.state&&!params.search){history.pushState(null,"",url)}else{history.replaceState(null,"",url)}}async function search(forced){const query=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));await showResults(await execQuery(query,filterCrates,window.currentCrate),params.go_to_first,filterCrates)}function buildItemSearchTypeAll(types,lowercasePaths){return types.length>0?types.map(type=>buildItemSearchType(type,lowercasePaths)):EMPTY_GENERICS_ARRAY}const EMPTY_BINDINGS_MAP=new Map();const EMPTY_GENERICS_ARRAY=[];let TYPES_POOL=new Map();function buildItemSearchType(type,lowercasePaths,isAssocType){const PATH_INDEX_DATA=0;const GENERICS_DATA=1;const BINDINGS_DATA=2;let pathIndex,generics,bindings;if(typeof type==="number"){pathIndex=type;generics=EMPTY_GENERICS_ARRAY;bindings=EMPTY_BINDINGS_MAP}else{pathIndex=type[PATH_INDEX_DATA];generics=buildItemSearchTypeAll(type[GENERICS_DATA],lowercasePaths,);if(type.length>BINDINGS_DATA&&type[BINDINGS_DATA].length>0){bindings=new Map(type[BINDINGS_DATA].map(binding=>{const[assocType,constraints]=binding;return[buildItemSearchType(assocType,lowercasePaths,true).id,buildItemSearchTypeAll(constraints,lowercasePaths),]}))}else{bindings=EMPTY_BINDINGS_MAP}}let result;if(pathIndex<0){result={id:pathIndex,ty:TY_GENERIC,path:null,exactPath:null,generics,bindings,}}else if(pathIndex===0){result={id:null,ty:null,path:null,exactPath:null,generics,bindings,}}else{const item=lowercasePaths[pathIndex-1];result={id:buildTypeMapIndex(item.name,isAssocType),ty:item.ty,path:item.path,exactPath:item.exactPath,generics,bindings,}}const cr=TYPES_POOL.get(result.id);if(cr){if(cr.generics.length===result.generics.length&&cr.generics!==result.generics&&cr.generics.every((x,i)=>result.generics[i]===x)){result.generics=cr.generics}if(cr.bindings.size===result.bindings.size&&cr.bindings!==result.bindings){let ok=true;for(const[k,v]of cr.bindings.entries()){const v2=result.bindings.get(v);if(!v2){ok=false;break}if(v!==v2&&v.length===v2.length&&v.every((x,i)=>v2[i]===x)){result.bindings.set(k,v)}else if(v!==v2){ok=false;break}}if(ok){result.bindings=cr.bindings}}if(cr.ty===result.ty&&cr.path===result.path&&cr.bindings===result.bindings&&cr.generics===result.generics&&cr.ty===result.ty){return cr}}TYPES_POOL.set(result.id,result);return result}function buildFunctionSearchTypeCallback(lowercasePaths){return functionSearchType=>{if(functionSearchType===0){return null}const INPUTS_DATA=0;const OUTPUT_DATA=1;let inputs,output;if(typeof functionSearchType[INPUTS_DATA]==="number"){inputs=[buildItemSearchType(functionSearchType[INPUTS_DATA],lowercasePaths)]}else{inputs=buildItemSearchTypeAll(functionSearchType[INPUTS_DATA],lowercasePaths,)}if(functionSearchType.length>1){if(typeof functionSearchType[OUTPUT_DATA]==="number"){output=[buildItemSearchType(functionSearchType[OUTPUT_DATA],lowercasePaths)]}else{output=buildItemSearchTypeAll(functionSearchType[OUTPUT_DATA],lowercasePaths,)}}else{output=[]}const where_clause=[];const l=functionSearchType.length;for(let i=2;i{k=(~~k+0x7ed55d16)+(k<<12);k=(k ^ 0xc761c23c)^(k>>>19);k=(~~k+0x165667b1)+(k<<5);k=(~~k+0xd3a2646c)^(k<<9);k=(~~k+0xfd7046c5)+(k<<3);return(k ^ 0xb55a4f09)^(k>>>16)};const hashint2=k=>{k=~k+(k<<15);k ^=k>>>12;k+=k<<2;k ^=k>>>4;k=Math.imul(k,2057);return k ^(k>>16)};if(input!==null){const h0a=hashint1(input);const h0b=hashint2(input);const h1a=~~(h0a+Math.imul(h0b,2));const h1b=~~(h0a+Math.imul(h0b,3));const h2a=~~(h0a+Math.imul(h0b,4));const h2b=~~(h0a+Math.imul(h0b,5));output[0]|=(1<<(h0a%32))|(1<<(h1b%32));output[1]|=(1<<(h1a%32))|(1<<(h2b%32));output[2]|=(1<<(h2a%32))|(1<<(h0b%32));fps.add(input)}for(const g of type.generics){buildFunctionTypeFingerprint(g,output,fps)}const fb={id:null,ty:0,generics:EMPTY_GENERICS_ARRAY,bindings:EMPTY_BINDINGS_MAP,};for(const[k,v]of type.bindings.entries()){fb.id=k;fb.generics=v;buildFunctionTypeFingerprint(fb,output,fps)}output[3]=fps.size}function compareTypeFingerprints(fullId,queryFingerprint){const fh0=functionTypeFingerprint[fullId*4];const fh1=functionTypeFingerprint[(fullId*4)+1];const fh2=functionTypeFingerprint[(fullId*4)+2];const[qh0,qh1,qh2]=queryFingerprint;const[in0,in1,in2]=[fh0&qh0,fh1&qh1,fh2&qh2];if((in0 ^ qh0)||(in1 ^ qh1)||(in2 ^ qh2)){return null}return functionTypeFingerprint[(fullId*4)+3]}class VlqHexDecoder{constructor(string,cons){this.string=string;this.cons=cons;this.offset=0;this.backrefQueue=[]}decodeList(){const cb="}".charCodeAt(0);let c=this.string.charCodeAt(this.offset);const ret=[];while(c!==cb){ret.push(this.decode());c=this.string.charCodeAt(this.offset)}this.offset+=1;return ret}decode(){const[ob,la]=["{","`"].map(c=>c.charCodeAt(0));let n=0;let c=this.string.charCodeAt(this.offset);if(c===ob){this.offset+=1;return this.decodeList()}while(c>1];this.offset+=1;return sign?-value:value}next(){const c=this.string.charCodeAt(this.offset);const[zero,ua,la]=["0","@","`"].map(c=>c.charCodeAt(0));if(c>=zero&&c16){this.backrefQueue.pop()}return result}}class RoaringBitmap{constructor(str){const strdecoded=atob(str);const u8array=new Uint8Array(strdecoded.length);for(let j=0;j=4){offsets=[];for(let j=0;j>3]&(1<<(j&0x7))){const runcount=(u8array[i]|(u8array[i+1]<<8));i+=2;this.containers.push(new RoaringBitmapRun(runcount,u8array.slice(i,i+(runcount*4)),));i+=runcount*4}else if(this.cardinalities[j]>=4096){this.containers.push(new RoaringBitmapBits(u8array.slice(i,i+8192)));i+=8192}else{const end=this.cardinalities[j]*2;this.containers.push(new RoaringBitmapArray(this.cardinalities[j],u8array.slice(i,i+end),));i+=end}}}contains(keyvalue){const key=keyvalue>>16;const value=keyvalue&0xFFFF;for(let i=0;i=start&&value<=(start+lenm1)){return true}}return false}}class RoaringBitmapArray{constructor(cardinality,array){this.cardinality=cardinality;this.array=array}contains(value){const l=this.cardinality*2;for(let i=0;i>3]&(1<<(value&7)))}}function buildIndex(rawSearchIndex){searchIndex=[];searchIndexDeprecated=new Map();searchIndexEmptyDesc=new Map();const charA="A".charCodeAt(0);let currentIndex=0;let id=0;for(const crate of rawSearchIndex.values()){id+=crate.t.length+1}functionTypeFingerprint=new Uint32Array((id+1)*4);id=0;for(const[crate,crateCorpus]of rawSearchIndex){const itemDescShardDecoder=new VlqHexDecoder(crateCorpus.D,noop=>noop);let descShard={crate,shard:0,start:0,len:itemDescShardDecoder.next(),promise:null,resolve:null,};const descShardList=[descShard];searchIndexDeprecated.set(crate,new RoaringBitmap(crateCorpus.c));searchIndexEmptyDesc.set(crate,new RoaringBitmap(crateCorpus.e));let descIndex=0;const crateRow={crate,ty:3,name:crate,path:"",descShard,descIndex,exactPath:"",desc:crateCorpus.doc,parent:undefined,type:null,id,word:crate,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),bitIndex:0,implDisambiguator:null,};id+=1;searchIndex.push(crateRow);currentIndex+=1;if(!searchIndexEmptyDesc.get(crate).contains(0)){descIndex+=1}const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=new Map(crateCorpus.q);const itemReexports=new Map(crateCorpus.r);const itemParentIdxs=crateCorpus.i;const implDisambiguator=new Map(crateCorpus.b);const paths=crateCorpus.p;const aliases=crateCorpus.a;const lowercasePaths=[];const itemFunctionDecoder=new VlqHexDecoder(crateCorpus.f,buildFunctionSearchTypeCallback(lowercasePaths),);let len=paths.length;let lastPath=itemPaths.get(0);for(let i=0;i2){path=itemPaths.has(elem[2])?itemPaths.get(elem[2]):lastPath;lastPath=path}const exactPath=elem.length>3?itemPaths.get(elem[3]):path;lowercasePaths.push({ty,name:name.toLowerCase(),path,exactPath});paths[i]={ty,name,path,exactPath}}lastPath="";len=itemTypes.length;for(let i=0;i=descShard.len&&!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descShard={crate,shard:descShard.shard+1,start:descShard.start+descShard.len,len:itemDescShardDecoder.next(),promise:null,resolve:null,};descIndex=0;descShardList.push(descShard)}let word="";if(typeof itemNames[i]==="string"){word=itemNames[i].toLowerCase()}const path=itemPaths.has(i)?itemPaths.get(i):lastPath;const type=itemFunctionDecoder.next();if(type!==null){if(type){const fp=functionTypeFingerprint.subarray(id*4,(id+1)*4);const fps=new Set();for(const t of type.inputs){buildFunctionTypeFingerprint(t,fp,fps)}for(const t of type.output){buildFunctionTypeFingerprint(t,fp,fps)}for(const w of type.where_clause){for(const t of w){buildFunctionTypeFingerprint(t,fp,fps)}}}}const row={crate,ty:itemTypes.charCodeAt(i)-charA,name:itemNames[i],path,descShard,descIndex,exactPath:itemReexports.has(i)?itemPaths.get(itemReexports.get(i)):path,parent:itemParentIdxs[i]>0?paths[itemParentIdxs[i]-1]:undefined,type,id,word,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),bitIndex,implDisambiguator:implDisambiguator.has(i)?implDisambiguator.get(i):null,};id+=1;searchIndex.push(row);lastPath=row.path;if(!searchIndexEmptyDesc.get(crate).contains(bitIndex)){descIndex+=1}}if(aliases){const currentCrateAliases=new Map();ALIASES.set(crate,currentCrateAliases);for(const alias_name in aliases){if(!Object.prototype.hasOwnProperty.call(aliases,alias_name)){continue}let currentNameAliases;if(currentCrateAliases.has(alias_name)){currentNameAliases=currentCrateAliases.get(alias_name)}else{currentNameAliases=[];currentCrateAliases.set(alias_name,currentNameAliases)}for(const local_alias of aliases[alias_name]){currentNameAliases.push(local_alias+currentIndex)}}}currentIndex+=itemTypes.length;searchState.descShards.set(crate,descShardList)}TYPES_POOL=new Map()}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;e.preventDefault();search()}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="all crates"){const query=searchState.input.value.trim();updateSearchHistory(buildUrl(query,null))}currentResults=null;search(true)}buildIndex(rawSearchIndex);if(typeof window!=="undefined"){registerSearchEvents();if(window.searchState.getQueryStringParams().search){search()}}if(typeof exports!=="undefined"){exports.initSearch=initSearch;exports.execQuery=execQuery;exports.parseQuery=parseQuery}}if(typeof window!=="undefined"){window.initSearch=initSearch;if(window.searchIndex!==undefined){initSearch(window.searchIndex)}}else{initSearch(new Map())}})() \ No newline at end of file diff --git a/trait.impl/ark_crypto_primitives/sponge/trait.CryptographicSponge.js b/trait.impl/ark_crypto_primitives/sponge/trait.CryptographicSponge.js index 7e3bd8b58..65e442624 100644 --- a/trait.impl/ark_crypto_primitives/sponge/trait.CryptographicSponge.js +++ b/trait.impl/ark_crypto_primitives/sponge/trait.CryptographicSponge.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<T: RescueParameter + PrimeField, const RATE: usize> CryptographicSponge for RescueSponge<T, RATE>"]] +"jf_rescue":[["impl<T: RescueParameter + PrimeField, const RATE: usize> CryptographicSponge for RescueSponge<T, RATE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/ark_crypto_primitives/sponge/trait.FieldBasedCryptographicSponge.js b/trait.impl/ark_crypto_primitives/sponge/trait.FieldBasedCryptographicSponge.js index f1817a079..89fb6ab6d 100644 --- a/trait.impl/ark_crypto_primitives/sponge/trait.FieldBasedCryptographicSponge.js +++ b/trait.impl/ark_crypto_primitives/sponge/trait.FieldBasedCryptographicSponge.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<T: RescueParameter, const RATE: usize> FieldBasedCryptographicSponge<T> for RescueSponge<T, RATE>"]] +"jf_rescue":[["impl<T: RescueParameter, const RATE: usize> FieldBasedCryptographicSponge<T> for RescueSponge<T, RATE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/ark_crypto_primitives/sponge/trait.SpongeExt.js b/trait.impl/ark_crypto_primitives/sponge/trait.SpongeExt.js index 1b102b975..1341254f6 100644 --- a/trait.impl/ark_crypto_primitives/sponge/trait.SpongeExt.js +++ b/trait.impl/ark_crypto_primitives/sponge/trait.SpongeExt.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const RATE: usize> SpongeExt for RescueSponge<F, RATE>"]] +"jf_rescue":[["impl<F: RescueParameter, const RATE: usize> SpongeExt for RescueSponge<F, RATE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/ark_serialize/trait.CanonicalDeserialize.js b/trait.impl/ark_serialize/trait.CanonicalDeserialize.js index e3dd43198..944add9fb 100644 --- a/trait.impl/ark_serialize/trait.CanonicalDeserialize.js +++ b/trait.impl/ark_serialize/trait.CanonicalDeserialize.js @@ -6,5 +6,5 @@ "jf_plonk":[["impl<E: Pairing> CanonicalDeserialize for BatchProof<E>"],["impl<E: Pairing> CanonicalDeserialize for PlookupProof<E>"],["impl<E: Pairing> CanonicalDeserialize for PlookupProvingKey<E>"],["impl<E: Pairing> CanonicalDeserialize for PlookupVerifyingKey<E>"],["impl<E: Pairing> CanonicalDeserialize for Proof<E>"],["impl<E: Pairing> CanonicalDeserialize for ProvingKey<E>"],["impl<E: Pairing> CanonicalDeserialize for VerifyingKey<E>"],["impl<F: Field> CanonicalDeserialize for PlookupEvaluations<F>"],["impl<F: Field> CanonicalDeserialize for ProofEvaluations<F>"]], "jf_relation":[["impl<F: PrimeField> CanonicalDeserialize for SWPoint<F>"]], "jf_vdf":[["impl CanonicalDeserialize for MinRootPP"],["impl<F: MinRootField> CanonicalDeserialize for MinRootElement<F>"]], -"jf_vid":[["impl<E> CanonicalDeserialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> CanonicalDeserialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] +"jf_vid":[["impl<E> CanonicalDeserialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> CanonicalDeserialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/ark_serialize/trait.CanonicalSerialize.js b/trait.impl/ark_serialize/trait.CanonicalSerialize.js index f47537467..dbafa01c9 100644 --- a/trait.impl/ark_serialize/trait.CanonicalSerialize.js +++ b/trait.impl/ark_serialize/trait.CanonicalSerialize.js @@ -6,5 +6,5 @@ "jf_plonk":[["impl<E: Pairing> CanonicalSerialize for BatchProof<E>"],["impl<E: Pairing> CanonicalSerialize for PlookupProof<E>"],["impl<E: Pairing> CanonicalSerialize for PlookupProvingKey<E>"],["impl<E: Pairing> CanonicalSerialize for PlookupVerifyingKey<E>"],["impl<E: Pairing> CanonicalSerialize for Proof<E>"],["impl<E: Pairing> CanonicalSerialize for ProvingKey<E>"],["impl<E: Pairing> CanonicalSerialize for VerifyingKey<E>"],["impl<F: Field> CanonicalSerialize for PlookupEvaluations<F>"],["impl<F: Field> CanonicalSerialize for ProofEvaluations<F>"]], "jf_relation":[["impl<F: PrimeField> CanonicalSerialize for SWPoint<F>"]], "jf_vdf":[["impl CanonicalSerialize for MinRootPP"],["impl<F: MinRootField> CanonicalSerialize for MinRootElement<F>"]], -"jf_vid":[["impl<E> CanonicalSerialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> CanonicalSerialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] +"jf_vid":[["impl<E> CanonicalSerialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> CanonicalSerialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/ark_serialize/trait.Valid.js b/trait.impl/ark_serialize/trait.Valid.js index b3d374ac9..a52e4c650 100644 --- a/trait.impl/ark_serialize/trait.Valid.js +++ b/trait.impl/ark_serialize/trait.Valid.js @@ -6,5 +6,5 @@ "jf_plonk":[["impl<E: Pairing> Valid for BatchProof<E>"],["impl<E: Pairing> Valid for PlookupProof<E>"],["impl<E: Pairing> Valid for PlookupProvingKey<E>"],["impl<E: Pairing> Valid for PlookupVerifyingKey<E>"],["impl<E: Pairing> Valid for Proof<E>"],["impl<E: Pairing> Valid for ProvingKey<E>"],["impl<E: Pairing> Valid for VerifyingKey<E>"],["impl<F: Field> Valid for PlookupEvaluations<F>"],["impl<F: Field> Valid for ProofEvaluations<F>"]], "jf_relation":[["impl<F: PrimeField> Valid for SWPoint<F>"]], "jf_vdf":[["impl Valid for MinRootPP"],["impl<F: MinRootField> Valid for MinRootElement<F>"]], -"jf_vid":[["impl<E> Valid for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Valid for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] +"jf_vid":[["impl<E> Valid for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Valid for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/clone/trait.Clone.js b/trait.impl/core/clone/trait.Clone.js index 201c86753..0833c01a8 100644 --- a/trait.impl/core/clone/trait.Clone.js +++ b/trait.impl/core/clone/trait.Clone.js @@ -1,11 +1,11 @@ (function() {var implementors = { -"jf_aead":[["impl Clone for AEADError"],["impl Clone for Ciphertext"],["impl Clone for EncKey"],["impl Clone for KeyPair"]], -"jf_elgamal":[["impl<P> Clone for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Clone for EncKey<P>
    where\n P: Config,
    "],["impl<P> Clone for KeyPair<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Clone for Sha3Digest"],["impl Clone for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone,\n E: Element + Namespaced<Namespace = N> + Clone,\n T: NodeValue + Clone,\n N: Namespace + Clone,
    "],["impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>"],["impl<F: Clone + RescueParameter> Clone for RescueHash<F>"],["impl<F: Clone + Field> Clone for Interval<F>"],["impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>"],["impl<H> Clone for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<E: Clone + Pairing> Clone for MultilinearKzgBatchProof<E>"],["impl<E: Clone + Pairing> Clone for MultilinearKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for Commitment<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearProverParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearUniversalParams<E>
    where\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateProverParam<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateUniversalParams<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<F: Clone + PrimeField> Clone for IOPTranscript<F>"]], -"jf_plonk":[["impl<E: Clone + Pairing> Clone for VerifyingKeyVar<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for Instance<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for BatchProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupVerifyingKey<E>"],["impl<E: Clone + Pairing> Clone for Proof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for ProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for VerifyingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<F: Clone + Field> Clone for PlookupEvaluations<F>"],["impl<F: Clone + Field> Clone for ProofEvaluations<F>"],["impl<F: Clone + PrimeField> Clone for BatchProofVar<F>"]], -"jf_relation":[["impl Clone for MergeableCircuitType"],["impl Clone for PlonkType"],["impl Clone for BoolVar"],["impl Clone for PointVariable"],["impl Clone for AdditionGate"],["impl Clone for BoolGate"],["impl Clone for CondSelectGate"],["impl Clone for EqualityGate"],["impl Clone for FifthRootGate"],["impl Clone for IoGate"],["impl Clone for LogicOrGate"],["impl Clone for LogicOrOutputGate"],["impl Clone for MultiplicationGate"],["impl Clone for PaddingGate"],["impl Clone for SubtractionGate"],["impl<E: Clone + PrimeField> Clone for EmulatedSWPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedTEPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedVariable<E>"],["impl<F> Clone for PlonkCircuit<F>
    where\n F: FftField + Clone,
    "],["impl<F: Clone + Field> Clone for ConstantAdditionGate<F>"],["impl<F: Clone + Field> Clone for ConstantGate<F>"],["impl<F: Clone + Field> Clone for LinCombGate<F>"],["impl<F: Clone + Field> Clone for LookupGate<F>"],["impl<F: Clone + Field> Clone for MulAddGate<F>"],["impl<F: Clone + Field> Clone for QuadPolyGate<F>"],["impl<F: Clone + PrimeField> Clone for SWPoint<F>"],["impl<F: Clone + PrimeField> Clone for TEPoint<F>"],["impl<F: Clone + PrimeField> Clone for FpElem<F>"],["impl<F: Clone + PrimeField> Clone for FpElemVar<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectXGate<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectYGate<F>"],["impl<F: Clone> Clone for ConstantMultiplicationGate<F>"],["impl<F: Field> Clone for Box<dyn Gate<F>>"],["impl<P> Clone for CurvePointXAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for CurvePointYAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for EdwardsCurveEquationGate<P>
    where\n P: Config,
    "]], -"jf_rescue":[["impl<F: Clone + RescueParameter> Clone for RescueCRHF<F>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const RATE: usize> Clone for RescueSponge<F, RATE>"],["impl<F: Clone> Clone for PRP<F>"],["impl<F: Clone> Clone for Permutation<F>"],["impl<F: Clone> Clone for RescueMatrix<F>"],["impl<F: Clone> Clone for RescueVector<F>"]], -"jf_vdf":[["impl Clone for MinRootPP"],["impl<F: Clone + MinRootField> Clone for MinRootElement<F>"]], -"jf_vid":[["impl<'a, V> Clone for Statement<'a, V>
    where\n V: VidScheme,
    "],["impl<E> Clone for PrecomputeData<E>
    where\n E: Pairing + Clone,
    "],["impl<E, H> Clone for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Clone for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,
    "],["impl<F: Clone> Clone for LargeRangeProof<F>"],["impl<P: Clone> Clone for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Clone for VidDisperse<V>"]] +"jf_aead":[["impl Clone for AEADError"],["impl Clone for Ciphertext"],["impl Clone for EncKey"],["impl Clone for KeyPair"]], +"jf_elgamal":[["impl<P> Clone for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Clone for EncKey<P>
    where\n P: Config,
    "],["impl<P> Clone for KeyPair<P>
    where\n P: Config,
    "]], +"jf_merkle_tree":[["impl Clone for Sha3Digest"],["impl Clone for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E, H, const ARITY: usize, N, T> Clone for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Clone,\n E: Element + Namespaced<Namespace = N> + Clone,\n T: NodeValue + Clone,\n N: Namespace + Clone,
    "],["impl<E, I, T, const ARITY: usize> Clone for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,
    "],["impl<E: Clone + Element, I: Clone + Index, T: Clone + NodeValue> Clone for MerkleNode<E, I, T>"],["impl<F: Clone + RescueParameter> Clone for RescueHash<F>"],["impl<F: Clone + Field> Clone for Interval<F>"],["impl<F: Clone, P: Clone, N: Clone> Clone for LookupResult<F, P, N>"],["impl<H> Clone for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<E: Clone + Pairing> Clone for MultilinearKzgBatchProof<E>"],["impl<E: Clone + Pairing> Clone for MultilinearKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for Commitment<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearProverParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearUniversalParams<E>
    where\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for MultilinearVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateProverParam<E>
    where\n E::G1Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateUniversalParams<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateVerifierParam<E>
    where\n E::G1Affine: Clone,\n E::G2Affine: Clone,
    "],["impl<E: Clone + Pairing> Clone for UnivariateKzgProof<E>
    where\n E::G1Affine: Clone,
    "],["impl<F: Clone + PrimeField> Clone for IOPTranscript<F>"]], +"jf_plonk":[["impl<E: Clone + Pairing> Clone for VerifyingKeyVar<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for Instance<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for BatchProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for PlookupVerifyingKey<E>"],["impl<E: Clone + Pairing> Clone for Proof<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for ProvingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<E: Clone + Pairing> Clone for VerifyingKey<E>
    where\n E::ScalarField: Clone,
    "],["impl<F: Clone + Field> Clone for PlookupEvaluations<F>"],["impl<F: Clone + Field> Clone for ProofEvaluations<F>"],["impl<F: Clone + PrimeField> Clone for BatchProofVar<F>"]], +"jf_relation":[["impl Clone for MergeableCircuitType"],["impl Clone for PlonkType"],["impl Clone for BoolVar"],["impl Clone for PointVariable"],["impl Clone for AdditionGate"],["impl Clone for BoolGate"],["impl Clone for CondSelectGate"],["impl Clone for EqualityGate"],["impl Clone for FifthRootGate"],["impl Clone for IoGate"],["impl Clone for LogicOrGate"],["impl Clone for LogicOrOutputGate"],["impl Clone for MultiplicationGate"],["impl Clone for PaddingGate"],["impl Clone for SubtractionGate"],["impl<E: Clone + PrimeField> Clone for EmulatedSWPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedTEPointVariable<E>"],["impl<E: Clone + PrimeField> Clone for EmulatedVariable<E>"],["impl<F> Clone for PlonkCircuit<F>
    where\n F: FftField + Clone,
    "],["impl<F: Clone + Field> Clone for ConstantAdditionGate<F>"],["impl<F: Clone + Field> Clone for ConstantGate<F>"],["impl<F: Clone + Field> Clone for LinCombGate<F>"],["impl<F: Clone + Field> Clone for LookupGate<F>"],["impl<F: Clone + Field> Clone for MulAddGate<F>"],["impl<F: Clone + Field> Clone for QuadPolyGate<F>"],["impl<F: Clone + PrimeField> Clone for SWPoint<F>"],["impl<F: Clone + PrimeField> Clone for TEPoint<F>"],["impl<F: Clone + PrimeField> Clone for FpElem<F>"],["impl<F: Clone + PrimeField> Clone for FpElemVar<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectXGate<F>"],["impl<F: Clone + PrimeField> Clone for QuaternaryPointSelectYGate<F>"],["impl<F: Clone> Clone for ConstantMultiplicationGate<F>"],["impl<F: Field> Clone for Box<dyn Gate<F>>"],["impl<P> Clone for CurvePointXAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for CurvePointYAdditionGate<P>
    where\n P: Config,
    "],["impl<P> Clone for EdwardsCurveEquationGate<P>
    where\n P: Config,
    "]], +"jf_rescue":[["impl<F: Clone + RescueParameter> Clone for RescueCRHF<F>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Clone for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Clone for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const OUTPUT_LEN: usize> Clone for VariableLengthRescueCRHF<F, OUTPUT_LEN>"],["impl<F: Clone + RescueParameter, const RATE: usize> Clone for RescueSponge<F, RATE>"],["impl<F: Clone> Clone for PRP<F>"],["impl<F: Clone> Clone for Permutation<F>"],["impl<F: Clone> Clone for RescueMatrix<F>"],["impl<F: Clone> Clone for RescueVector<F>"]], +"jf_vdf":[["impl Clone for MinRootPP"],["impl<F: Clone + MinRootField> Clone for MinRootElement<F>"]], +"jf_vid":[["impl<'a, V> Clone for Statement<'a, V>
    where\n V: VidScheme,
    "],["impl<E> Clone for PrecomputeData<E>
    where\n E: Pairing + Clone,
    "],["impl<E, H> Clone for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Clone for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,
    "],["impl<F: Clone> Clone for LargeRangeProof<F>"],["impl<P: Clone> Clone for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Clone for VidDisperse<V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Eq.js b/trait.impl/core/cmp/trait.Eq.js index 638c12c14..a3091536d 100644 --- a/trait.impl/core/cmp/trait.Eq.js +++ b/trait.impl/core/cmp/trait.Eq.js @@ -1,12 +1,12 @@ (function() {var implementors = { -"jf_aead":[["impl Eq for AEADError"],["impl Eq for Ciphertext"],["impl Eq for EncKey"]], -"jf_elgamal":[["impl<P> Eq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Eq for EncKey<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Eq for MerkleTreeError"],["impl Eq for Sha3Digest"],["impl Eq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq,\n E: Element + Namespaced<Namespace = N> + Eq,\n T: NodeValue + Eq,\n N: Namespace + Eq,
    "],["impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>"],["impl<F: Eq + RescueParameter> Eq for RescueHash<F>"],["impl<F: Eq + Field> Eq for Interval<F>"],["impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>"],["impl<H> Eq for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<E: Eq + Pairing> Eq for MultilinearKzgBatchProof<E>"],["impl<E: Eq + Pairing> Eq for MultilinearKzgProof<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for Commitment<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateProverParam<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateUniversalParams<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateVerifierParam<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateKzgProof<E>
    where\n E::G1Affine: Eq,
    "]], -"jf_plonk":[["impl<E: Eq + Pairing> Eq for VerifyingKeyVar<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for BatchProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupVerifyingKey<E>"],["impl<E: Eq + Pairing> Eq for Proof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for ProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for VerifyingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<F: Eq + Field> Eq for PlookupEvaluations<F>"],["impl<F: Eq + Field> Eq for ProofEvaluations<F>"],["impl<F: Eq + PrimeField> Eq for BatchProofVar<F>"]], -"jf_relation":[["impl Eq for MergeableCircuitType"],["impl Eq for PlonkType"],["impl Eq for PointVariable"],["impl<F: Eq + PrimeField> Eq for SWPoint<F>"],["impl<F: Eq + PrimeField> Eq for TEPoint<F>"],["impl<F: Eq + PrimeField> Eq for FpElem<F>"],["impl<F: Eq + PrimeField> Eq for FpElemVar<F>"]], -"jf_rescue":[["impl Eq for RescueError"],["impl<F: Eq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Eq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Eq> Eq for RescueVector<F>"]], -"jf_signature":[["impl Eq for SignatureError"]], -"jf_vdf":[["impl Eq for MinRootPP"],["impl Eq for VDFError"],["impl<F: Eq + MinRootField> Eq for MinRootElement<F>"]], -"jf_vid":[["impl<E> Eq for PrecomputeData<E>
    where\n E: Pairing + Eq,
    "],["impl<E, H> Eq for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Eq for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,
    "],["impl<F: Eq> Eq for LargeRangeProof<F>"],["impl<P: Eq> Eq for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Eq for VidDisperse<V>"]] +"jf_aead":[["impl Eq for AEADError"],["impl Eq for Ciphertext"],["impl Eq for EncKey"]], +"jf_elgamal":[["impl<P> Eq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Eq for EncKey<P>
    where\n P: Config,
    "]], +"jf_merkle_tree":[["impl Eq for MerkleTreeError"],["impl Eq for Sha3Digest"],["impl Eq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E, H, const ARITY: usize, N, T> Eq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Eq,\n E: Element + Namespaced<Namespace = N> + Eq,\n T: NodeValue + Eq,\n N: Namespace + Eq,
    "],["impl<E, I, T, const ARITY: usize> Eq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,
    "],["impl<E: Eq + Element, I: Eq + Index, T: Eq + NodeValue> Eq for MerkleNode<E, I, T>"],["impl<F: Eq + RescueParameter> Eq for RescueHash<F>"],["impl<F: Eq + Field> Eq for Interval<F>"],["impl<F: Eq, P: Eq, N: Eq> Eq for LookupResult<F, P, N>"],["impl<H> Eq for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<E: Eq + Pairing> Eq for MultilinearKzgBatchProof<E>"],["impl<E: Eq + Pairing> Eq for MultilinearKzgProof<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for Commitment<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateProverParam<E>
    where\n E::G1Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateUniversalParams<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateVerifierParam<E>
    where\n E::G1Affine: Eq,\n E::G2Affine: Eq,
    "],["impl<E: Eq + Pairing> Eq for UnivariateKzgProof<E>
    where\n E::G1Affine: Eq,
    "]], +"jf_plonk":[["impl<E: Eq + Pairing> Eq for VerifyingKeyVar<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for BatchProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for PlookupVerifyingKey<E>"],["impl<E: Eq + Pairing> Eq for Proof<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for ProvingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<E: Eq + Pairing> Eq for VerifyingKey<E>
    where\n E::ScalarField: Eq,
    "],["impl<F: Eq + Field> Eq for PlookupEvaluations<F>"],["impl<F: Eq + Field> Eq for ProofEvaluations<F>"],["impl<F: Eq + PrimeField> Eq for BatchProofVar<F>"]], +"jf_relation":[["impl Eq for MergeableCircuitType"],["impl Eq for PlonkType"],["impl Eq for PointVariable"],["impl<F: Eq + PrimeField> Eq for SWPoint<F>"],["impl<F: Eq + PrimeField> Eq for TEPoint<F>"],["impl<F: Eq + PrimeField> Eq for FpElem<F>"],["impl<F: Eq + PrimeField> Eq for FpElemVar<F>"]], +"jf_rescue":[["impl Eq for RescueError"],["impl<F: Eq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Eq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Eq> Eq for RescueVector<F>"]], +"jf_signature":[["impl Eq for SignatureError"]], +"jf_vdf":[["impl Eq for MinRootPP"],["impl Eq for VDFError"],["impl<F: Eq + MinRootField> Eq for MinRootElement<F>"]], +"jf_vid":[["impl<E> Eq for PrecomputeData<E>
    where\n E: Pairing + Eq,
    "],["impl<E, H> Eq for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Eq for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,
    "],["impl<F: Eq> Eq for LargeRangeProof<F>"],["impl<P: Eq> Eq for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Eq for VidDisperse<V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.Ord.js b/trait.impl/core/cmp/trait.Ord.js index 772e66b4a..8fbbf282a 100644 --- a/trait.impl/core/cmp/trait.Ord.js +++ b/trait.impl/core/cmp/trait.Ord.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"jf_aead":[["impl Ord for AEADError"]], -"jf_merkle_tree":[["impl Ord for Sha3Node"],["impl<H> Ord for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_vdf":[["impl Ord for MinRootPP"],["impl<F: Ord + MinRootField> Ord for MinRootElement<F>"]] +"jf_aead":[["impl Ord for AEADError"]], +"jf_merkle_tree":[["impl Ord for Sha3Node"],["impl<H> Ord for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_vdf":[["impl Ord for MinRootPP"],["impl<F: Ord + MinRootField> Ord for MinRootElement<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialEq.js b/trait.impl/core/cmp/trait.PartialEq.js index e7be2712a..f8d287eb5 100644 --- a/trait.impl/core/cmp/trait.PartialEq.js +++ b/trait.impl/core/cmp/trait.PartialEq.js @@ -1,12 +1,12 @@ (function() {var implementors = { -"jf_aead":[["impl PartialEq for AEADError"],["impl PartialEq for Ciphertext"],["impl PartialEq for EncKey"],["impl PartialEq for KeyPair"]], -"jf_elgamal":[["impl<P> PartialEq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> PartialEq for KeyPair<P>
    where\n P: Config,
    "],["impl<P: Config> PartialEq for EncKey<P>"]], -"jf_merkle_tree":[["impl PartialEq for MerkleTreeError"],["impl PartialEq for Sha3Digest"],["impl PartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq,\n E: Element + Namespaced<Namespace = N> + PartialEq,\n T: NodeValue + PartialEq,\n N: Namespace + PartialEq,
    "],["impl<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>"],["impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>"],["impl<F: PartialEq + Field> PartialEq for Interval<F>"],["impl<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>"],["impl<H> PartialEq for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgBatchProof<E>"],["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for Commitment<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateProverParam<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateUniversalParams<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateVerifierParam<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "]], -"jf_plonk":[["impl<E> PartialEq for BatchProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for PlookupProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for Proof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKeyVar<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupVerifyingKey<E>"],["impl<E: PartialEq + Pairing> PartialEq for ProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<F: PartialEq + Field> PartialEq for PlookupEvaluations<F>"],["impl<F: PartialEq + Field> PartialEq for ProofEvaluations<F>"],["impl<F: PartialEq + PrimeField> PartialEq for BatchProofVar<F>"]], -"jf_relation":[["impl PartialEq for MergeableCircuitType"],["impl PartialEq for PlonkType"],["impl PartialEq for PointVariable"],["impl<F: PartialEq + PrimeField> PartialEq for SWPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for TEPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElem<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElemVar<F>"]], -"jf_rescue":[["impl PartialEq for RescueError"],["impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: PartialEq> PartialEq for RescueVector<F>"]], -"jf_signature":[["impl PartialEq for SignatureError"]], -"jf_vdf":[["impl PartialEq for MinRootPP"],["impl PartialEq for VDFError"],["impl<F: PartialEq + MinRootField> PartialEq for MinRootElement<F>"]], -"jf_vid":[["impl<E> PartialEq for PrecomputeData<E>
    where\n E: Pairing + PartialEq,
    "],["impl<E, H> PartialEq for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> PartialEq for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,
    "],["impl<F: PartialEq> PartialEq for LargeRangeProof<F>"],["impl<P: PartialEq> PartialEq for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> PartialEq for VidDisperse<V>"]] +"jf_aead":[["impl PartialEq for AEADError"],["impl PartialEq for Ciphertext"],["impl PartialEq for EncKey"],["impl PartialEq for KeyPair"]], +"jf_elgamal":[["impl<P> PartialEq for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> PartialEq for KeyPair<P>
    where\n P: Config,
    "],["impl<P: Config> PartialEq for EncKey<P>"]], +"jf_merkle_tree":[["impl PartialEq for MerkleTreeError"],["impl PartialEq for Sha3Digest"],["impl PartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E, H, const ARITY: usize, N, T> PartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + PartialEq,\n E: Element + Namespaced<Namespace = N> + PartialEq,\n T: NodeValue + PartialEq,\n N: Namespace + PartialEq,
    "],["impl<E, I, T, const ARITY: usize> PartialEq for MerkleProof<E, I, T, ARITY>
    where\n E: Element + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,
    "],["impl<E: PartialEq + Element, I: PartialEq + Index, T: PartialEq + NodeValue> PartialEq for MerkleNode<E, I, T>"],["impl<F: PartialEq + RescueParameter> PartialEq for RescueHash<F>"],["impl<F: PartialEq + Field> PartialEq for Interval<F>"],["impl<F: PartialEq, P: PartialEq, N: PartialEq> PartialEq for LookupResult<F, P, N>"],["impl<H> PartialEq for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgBatchProof<E>"],["impl<E: PartialEq + Pairing> PartialEq for MultilinearKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for Commitment<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateProverParam<E>
    where\n E::G1Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateUniversalParams<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateVerifierParam<E>
    where\n E::G1Affine: PartialEq,\n E::G2Affine: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for UnivariateKzgProof<E>
    where\n E::G1Affine: PartialEq,
    "]], +"jf_plonk":[["impl<E> PartialEq for BatchProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for PlookupProof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E> PartialEq for Proof<E>
    where\n E: PartialEq + Pairing,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKeyVar<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for PlookupVerifyingKey<E>"],["impl<E: PartialEq + Pairing> PartialEq for ProvingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<E: PartialEq + Pairing> PartialEq for VerifyingKey<E>
    where\n E::ScalarField: PartialEq,
    "],["impl<F: PartialEq + Field> PartialEq for PlookupEvaluations<F>"],["impl<F: PartialEq + Field> PartialEq for ProofEvaluations<F>"],["impl<F: PartialEq + PrimeField> PartialEq for BatchProofVar<F>"]], +"jf_relation":[["impl PartialEq for MergeableCircuitType"],["impl PartialEq for PlonkType"],["impl PartialEq for PointVariable"],["impl<F: PartialEq + PrimeField> PartialEq for SWPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for TEPoint<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElem<F>"],["impl<F: PartialEq + PrimeField> PartialEq for FpElemVar<F>"]], +"jf_rescue":[["impl PartialEq for RescueError"],["impl<F: PartialEq + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> PartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: PartialEq> PartialEq for RescueVector<F>"]], +"jf_signature":[["impl PartialEq for SignatureError"]], +"jf_vdf":[["impl PartialEq for MinRootPP"],["impl PartialEq for VDFError"],["impl<F: PartialEq + MinRootField> PartialEq for MinRootElement<F>"]], +"jf_vid":[["impl<E> PartialEq for PrecomputeData<E>
    where\n E: Pairing + PartialEq,
    "],["impl<E, H> PartialEq for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> PartialEq for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,
    "],["impl<F: PartialEq> PartialEq for LargeRangeProof<F>"],["impl<P: PartialEq> PartialEq for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> PartialEq for VidDisperse<V>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/cmp/trait.PartialOrd.js b/trait.impl/core/cmp/trait.PartialOrd.js index 8a3aa53a4..67d8f31cf 100644 --- a/trait.impl/core/cmp/trait.PartialOrd.js +++ b/trait.impl/core/cmp/trait.PartialOrd.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"jf_aead":[["impl PartialOrd for AEADError"]], -"jf_merkle_tree":[["impl PartialOrd for Sha3Node"],["impl<H> PartialOrd for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_vdf":[["impl PartialOrd for MinRootPP"],["impl<F: PartialOrd + MinRootField> PartialOrd for MinRootElement<F>"]] +"jf_aead":[["impl PartialOrd for AEADError"]], +"jf_merkle_tree":[["impl PartialOrd for Sha3Node"],["impl<H> PartialOrd for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_vdf":[["impl PartialOrd for MinRootPP"],["impl<F: PartialOrd + MinRootField> PartialOrd for MinRootElement<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.AsRef.js b/trait.impl/core/convert/trait.AsRef.js index a860efbd1..455f32c48 100644 --- a/trait.impl/core/convert/trait.AsRef.js +++ b/trait.impl/core/convert/trait.AsRef.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"jf_merkle_tree":[["impl AsRef<[u8]> for Sha3Node"],["impl<H> AsRef<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<T, E> AsRef<T> for Commitment<E>
    where\n T: AffineRepr,\n E: Pairing<G1Affine = T>,
    "]] +"jf_merkle_tree":[["impl AsRef<[u8]> for Sha3Node"],["impl<H> AsRef<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<T, E> AsRef<T> for Commitment<E>
    where\n T: AffineRepr,\n E: Pairing<G1Affine = T>,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.From.js b/trait.impl/core/convert/trait.From.js index e19f70f93..31879466b 100644 --- a/trait.impl/core/convert/trait.From.js +++ b/trait.impl/core/convert/trait.From.js @@ -1,12 +1,12 @@ (function() {var implementors = { -"jf_aead":[["impl From<EncKey> for [u8; 32]"],["impl From<[u8; 32]> for EncKey"]], -"jf_elgamal":[["impl<P> From<&EncKey<P>> for (P::BaseField, P::BaseField)
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl From<RescueError> for MerkleTreeError"],["impl<H> From<&HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl From<TranscriptError> for PCSError"],["impl From<SerializationError> for PCSError"],["impl From<SerializationError> for TranscriptError"],["impl<T, E> From<T> for Commitment<E>
    where\n T: AffineRepr,\n E: Pairing<G1Affine = T>,
    "]], -"jf_plonk":[["impl From<PCSError> for PlonkError"],["impl From<PlonkError> for CircuitError"],["impl From<SnarkError> for PlonkError"],["impl From<CircuitError> for PlonkError"],["impl From<RescueError> for PlonkError"],["impl From<Error> for PlonkError"],["impl From<SerializationError> for PlonkError"],["impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P1>, G2Affine = Affine<P2>, TargetField = Fp2<F>>,\n F: Fp2Config<Fp = E::BaseField>,\n P1: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,\n P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,
    "],["impl<E, P> From<Proof<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> From<&BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<&Proof<E>> for TaggedBase64"],["impl<E: Pairing> From<BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<Proof<E>> for BatchProof<E>"],["impl<E: Pairing> From<Proof<E>> for TaggedBase64"],["impl<F: Field> From<ProofEvaluations<F>> for Vec<F>"]], -"jf_relation":[["impl From<BoolVar> for Variable"],["impl<F, P> From<TEPoint<F>> for Affine<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<TEPoint<F>> for Projective<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for SWPoint<F>
    where\n F: PrimeField,\n P: SWCurveConfig<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField + SWToTEConParam,\n P: SWParam<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Projective<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "]], -"jf_rescue":[["impl<F: Copy> From<&[F; 4]> for RescueVector<F>"],["impl<F: Copy> From<&[F]> for RescueVector<F>"],["impl<F: RescueParameter> From<PRP<F>> for Permutation<F>"],["impl<F: PrimeField> From<&[RescueVector<F>; 4]> for RescueMatrix<F>"]], -"jf_signature":[["impl From<BLST_ERROR> for SignatureError"]], -"jf_utils":[["impl<T: CanonicalSerialize> From<T> for CanonicalBytes"]], -"jf_vdf":[["impl<F, T> From<T> for MinRootElement<F>
    where\n T: AffineRepr<BaseField = F>,\n F: MinRootField,
    "]] +"jf_aead":[["impl From<EncKey> for [u8; 32]"],["impl From<[u8; 32]> for EncKey"]], +"jf_elgamal":[["impl<P> From<&EncKey<P>> for (P::BaseField, P::BaseField)
    where\n P: Config,
    "]], +"jf_merkle_tree":[["impl From<RescueError> for MerkleTreeError"],["impl<H> From<&HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<HasherNode<H>> for TaggedBase64
    where\n H: Digest,
    "],["impl<H> From<GenericArray<u8, <H as OutputSizeUser>::OutputSize>> for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl From<TranscriptError> for PCSError"],["impl From<SerializationError> for PCSError"],["impl From<SerializationError> for TranscriptError"],["impl<T, E> From<T> for Commitment<E>
    where\n T: AffineRepr,\n E: Pairing<G1Affine = T>,
    "]], +"jf_plonk":[["impl From<PCSError> for PlonkError"],["impl From<PlonkError> for CircuitError"],["impl From<SnarkError> for PlonkError"],["impl From<CircuitError> for PlonkError"],["impl From<RescueError> for PlonkError"],["impl From<Error> for PlonkError"],["impl From<SerializationError> for PlonkError"],["impl<E, F, P1, P2> From<VerifyingKey<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P1>, G2Affine = Affine<P2>, TargetField = Fp2<F>>,\n F: Fp2Config<Fp = E::BaseField>,\n P1: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,\n P2: SWCurveConfig<BaseField = E::TargetField, ScalarField = E::ScalarField>,
    "],["impl<E, P> From<Proof<E>> for Vec<E::BaseField>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> From<&BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<&Proof<E>> for TaggedBase64"],["impl<E: Pairing> From<BatchProof<E>> for TaggedBase64"],["impl<E: Pairing> From<Proof<E>> for BatchProof<E>"],["impl<E: Pairing> From<Proof<E>> for TaggedBase64"],["impl<F: Field> From<ProofEvaluations<F>> for Vec<F>"]], +"jf_relation":[["impl From<BoolVar> for Variable"],["impl<F, P> From<TEPoint<F>> for Affine<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<TEPoint<F>> for Projective<P>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for SWPoint<F>
    where\n F: PrimeField,\n P: SWCurveConfig<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField + SWToTEConParam,\n P: SWParam<BaseField = F>,
    "],["impl<F, P> From<Affine<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "],["impl<F, P> From<Projective<P>> for TEPoint<F>
    where\n F: PrimeField,\n P: Config<BaseField = F>,
    "]], +"jf_rescue":[["impl<F: Copy> From<&[F; 4]> for RescueVector<F>"],["impl<F: Copy> From<&[F]> for RescueVector<F>"],["impl<F: RescueParameter> From<PRP<F>> for Permutation<F>"],["impl<F: PrimeField> From<&[RescueVector<F>; 4]> for RescueMatrix<F>"]], +"jf_signature":[["impl From<BLST_ERROR> for SignatureError"]], +"jf_utils":[["impl<T: CanonicalSerialize> From<T> for CanonicalBytes"]], +"jf_vdf":[["impl<F, T> From<T> for MinRootElement<F>
    where\n T: AffineRepr<BaseField = F>,\n F: MinRootField,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/convert/trait.TryFrom.js b/trait.impl/core/convert/trait.TryFrom.js index ff7c42eba..b94e453f3 100644 --- a/trait.impl/core/convert/trait.TryFrom.js +++ b/trait.impl/core/convert/trait.TryFrom.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"jf_merkle_tree":[["impl<H> TryFrom<&TaggedBase64> for HasherNode<H>
    where\n H: Digest,
    "],["impl<H> TryFrom<TaggedBase64> for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_plonk":[["impl<E, P> TryFrom<Vec<<E as Pairing>::BaseField>> for Proof<E>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> TryFrom<&TaggedBase64> for BatchProof<E>"],["impl<E: Pairing> TryFrom<&TaggedBase64> for Proof<E>"],["impl<E: Pairing> TryFrom<TaggedBase64> for BatchProof<E>"],["impl<E: Pairing> TryFrom<TaggedBase64> for Proof<E>"],["impl<F: Field> TryFrom<Vec<F>> for ProofEvaluations<F>"]] +"jf_merkle_tree":[["impl<H> TryFrom<&TaggedBase64> for HasherNode<H>
    where\n H: Digest,
    "],["impl<H> TryFrom<TaggedBase64> for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_plonk":[["impl<E, P> TryFrom<Vec<<E as Pairing>::BaseField>> for Proof<E>
    where\n E: Pairing<G1Affine = Affine<P>>,\n P: SWCurveConfig<BaseField = E::BaseField, ScalarField = E::ScalarField>,
    "],["impl<E: Pairing> TryFrom<&TaggedBase64> for BatchProof<E>"],["impl<E: Pairing> TryFrom<&TaggedBase64> for Proof<E>"],["impl<E: Pairing> TryFrom<TaggedBase64> for BatchProof<E>"],["impl<E: Pairing> TryFrom<TaggedBase64> for Proof<E>"],["impl<F: Field> TryFrom<Vec<F>> for ProofEvaluations<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/default/trait.Default.js b/trait.impl/core/default/trait.Default.js index 83caa57cd..e978ccf6b 100644 --- a/trait.impl/core/default/trait.Default.js +++ b/trait.impl/core/default/trait.Default.js @@ -1,10 +1,10 @@ (function() {var implementors = { -"jf_aead":[["impl Default for EncKey"],["impl Default for KeyPair"]], -"jf_elgamal":[["impl<P> Default for EncKey<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Default for Sha3Node"],["impl<H> Default for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<E: Default + Pairing> Default for UnivariateProverParam<E>
    where\n E::G1Affine: Default,
    "],["impl<E: Default + Pairing> Default for UnivariateUniversalParams<E>
    where\n E::G1Affine: Default,\n E::G2Affine: Default,
    "],["impl<E: Pairing> Default for Commitment<E>"],["impl<E: Pairing> Default for UnivariateVerifierParam<E>"]], -"jf_plonk":[["impl<F> Default for ProofEvaluations<F>
    where\n F: Field,
    "]], -"jf_relation":[["impl<F: Default + PrimeField> Default for FpElem<F>"],["impl<F: Default + PrimeField> Default for FpElemVar<F>"],["impl<F: FftField> Default for PlonkCircuit<F>"],["impl<F: PrimeField> Default for SWPoint<F>"],["impl<F: PrimeField> Default for TEPoint<F>"]], -"jf_rescue":[["impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Default + RescueParameter, const RATE: usize> Default for RescueSponge<F, RATE>"],["impl<F: Default> Default for RescueVector<F>"],["impl<F: RescueParameter> Default for PRP<F>"],["impl<F: RescueParameter> Default for Permutation<F>"]], -"jf_vdf":[["impl Default for MinRootPP"],["impl<F: Default + MinRootField> Default for MinRootElement<F>"]] +"jf_aead":[["impl Default for EncKey"],["impl Default for KeyPair"]], +"jf_elgamal":[["impl<P> Default for EncKey<P>
    where\n P: Config,
    "]], +"jf_merkle_tree":[["impl Default for Sha3Node"],["impl<H> Default for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<E: Default + Pairing> Default for UnivariateProverParam<E>
    where\n E::G1Affine: Default,
    "],["impl<E: Default + Pairing> Default for UnivariateUniversalParams<E>
    where\n E::G1Affine: Default,\n E::G2Affine: Default,
    "],["impl<E: Pairing> Default for Commitment<E>"],["impl<E: Pairing> Default for UnivariateVerifierParam<E>"]], +"jf_plonk":[["impl<F> Default for ProofEvaluations<F>
    where\n F: Field,
    "]], +"jf_relation":[["impl<F: Default + PrimeField> Default for FpElem<F>"],["impl<F: Default + PrimeField> Default for FpElemVar<F>"],["impl<F: FftField> Default for PlonkCircuit<F>"],["impl<F: PrimeField> Default for SWPoint<F>"],["impl<F: PrimeField> Default for TEPoint<F>"]], +"jf_rescue":[["impl<F: Default + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Default for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Default + RescueParameter, const RATE: usize> Default for RescueSponge<F, RATE>"],["impl<F: Default> Default for RescueVector<F>"],["impl<F: RescueParameter> Default for PRP<F>"],["impl<F: RescueParameter> Default for Permutation<F>"]], +"jf_vdf":[["impl Default for MinRootPP"],["impl<F: Default + MinRootField> Default for MinRootElement<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/error/trait.Error.js b/trait.impl/core/error/trait.Error.js index 2ee513edc..930a37375 100644 --- a/trait.impl/core/error/trait.Error.js +++ b/trait.impl/core/error/trait.Error.js @@ -1,13 +1,13 @@ (function() {var implementors = { -"jf_aead":[["impl Error for AEADError"]], -"jf_merkle_tree":[["impl Error for MerkleTreeError"]], -"jf_pcs":[["impl Error for PCSError"]], -"jf_plonk":[["impl Error for PlonkError"]], -"jf_relation":[["impl Error for CircuitError"]], -"jf_rescue":[["impl Error for RescueError"]], -"jf_signature":[["impl Error for SignatureError"]], -"jf_utils":[["impl Error for RSCodeError"]], -"jf_vdf":[["impl Error for VDFError"]], -"jf_vid":[["impl Error for VidError"]], -"jf_vrf":[["impl Error for BLSVRFError"]] +"jf_aead":[["impl Error for AEADError"]], +"jf_merkle_tree":[["impl Error for MerkleTreeError"]], +"jf_pcs":[["impl Error for PCSError"]], +"jf_plonk":[["impl Error for PlonkError"]], +"jf_relation":[["impl Error for CircuitError"]], +"jf_rescue":[["impl Error for RescueError"]], +"jf_signature":[["impl Error for SignatureError"]], +"jf_utils":[["impl Error for RSCodeError"]], +"jf_vdf":[["impl Error for VDFError"]], +"jf_vid":[["impl Error for VidError"]], +"jf_vrf":[["impl Error for BLSVRFError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Debug.js b/trait.impl/core/fmt/trait.Debug.js index f32823cbc..be218d61a 100644 --- a/trait.impl/core/fmt/trait.Debug.js +++ b/trait.impl/core/fmt/trait.Debug.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Debug for AEADError"],["impl Debug for Ciphertext"],["impl Debug for EncKey"],["impl Debug for KeyPair"]], -"jf_elgamal":[["impl Debug for ParameterError"],["impl<P> Debug for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Debug for EncKey<P>
    where\n P: Config,
    "],["impl<P> Debug for KeyPair<P>
    where\n P: Config,
    "]], -"jf_merkle_tree":[["impl Debug for MerkleTreeError"],["impl Debug for Sha3Digest"],["impl Debug for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug,\n E: Element + Namespaced<Namespace = N> + Debug,\n T: NodeValue + Debug,\n N: Namespace + Debug,
    "],["impl<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>"],["impl<F: Debug + RescueParameter> Debug for RescueHash<F>"],["impl<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>"],["impl<H> Debug for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl Debug for PCSError"],["impl Debug for TranscriptError"],["impl<E: Debug + Pairing> Debug for MultilinearKzgBatchProof<E>"],["impl<E: Debug + Pairing> Debug for MultilinearKzgProof<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for Commitment<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearProverParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearUniversalParams<E>
    where\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateProverParam<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateUniversalParams<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateKzgProof<E>
    where\n E::G1Affine: Debug,
    "]], -"jf_plonk":[["impl Debug for PlonkError"],["impl Debug for SnarkError"],["impl<E: Debug + Pairing> Debug for VerifyingKeyVar<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for BatchProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupVerifyingKey<E>"],["impl<E: Debug + Pairing> Debug for Proof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for ProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for VerifyingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<F: Debug + Field> Debug for PlookupEvaluations<F>"],["impl<F: Debug + Field> Debug for ProofEvaluations<F>"],["impl<F: Debug + PrimeField> Debug for BatchProofVar<F>"]], -"jf_relation":[["impl Debug for MergeableCircuitType"],["impl Debug for PlonkType"],["impl Debug for CircuitError"],["impl Debug for BoolVar"],["impl Debug for PointVariable"],["impl Debug for AdditionGate"],["impl Debug for BoolGate"],["impl Debug for EqualityGate"],["impl Debug for FifthRootGate"],["impl Debug for IoGate"],["impl Debug for MultiplicationGate"],["impl Debug for PaddingGate"],["impl Debug for SubtractionGate"],["impl<E: Debug + PrimeField> Debug for EmulatedSWPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedTEPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedVariable<E>"],["impl<F> Debug for PlonkCircuit<F>
    where\n F: FftField + Debug,
    "],["impl<F: Debug + Field> Debug for ConstantAdditionGate<F>"],["impl<F: Debug + Field> Debug for ConstantGate<F>"],["impl<F: Debug + Field> Debug for LookupGate<F>"],["impl<F: Debug + PrimeField> Debug for SWPoint<F>"],["impl<F: Debug + PrimeField> Debug for TEPoint<F>"],["impl<F: Debug + PrimeField> Debug for FpElem<F>"],["impl<F: Debug + PrimeField> Debug for FpElemVar<F>"],["impl<F: Debug> Debug for ConstantMultiplicationGate<F>"],["impl<F: Field> Debug for dyn Gate<F> + 'static"]], -"jf_rescue":[["impl Debug for RescueError"],["impl<F: Debug + RescueParameter> Debug for RescueCRHF<F>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const RATE: usize> Debug for RescueSponge<F, RATE>"],["impl<F: Debug> Debug for PRP<F>"],["impl<F: Debug> Debug for Permutation<F>"],["impl<F: Debug> Debug for RescueMatrix<F>"],["impl<F: Debug> Debug for RescueVector<F>"]], -"jf_signature":[["impl Debug for SignatureError"]], -"jf_utils":[["impl Debug for RSCodeError"]], -"jf_vdf":[["impl Debug for MinRootPP"],["impl Debug for VDFError"],["impl<F: Debug + MinRootField> Debug for MinRootElement<F>"]], -"jf_vid":[["impl Debug for VidError"],["impl<E> Debug for PrecomputeData<E>
    where\n E: Pairing + Debug,
    "],["impl<E, H> Debug for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Debug for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,
    "],["impl<F: Debug> Debug for LargeRangeProof<F>"],["impl<P: Debug> Debug for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Debug for VidDisperse<V>
    where\n V::Share: Debug,\n V::Common: Debug,\n V::Commit: Debug,
    "]], -"jf_vrf":[["impl Debug for BLSVRFCipherSuite"],["impl Debug for BLSVRFError"]] +"jf_aead":[["impl Debug for AEADError"],["impl Debug for Ciphertext"],["impl Debug for EncKey"],["impl Debug for KeyPair"]], +"jf_elgamal":[["impl Debug for ParameterError"],["impl<P> Debug for Ciphertext<P>
    where\n P: Config,
    "],["impl<P> Debug for EncKey<P>
    where\n P: Config,
    "],["impl<P> Debug for KeyPair<P>
    where\n P: Config,
    "]], +"jf_merkle_tree":[["impl Debug for MerkleTreeError"],["impl Debug for Sha3Digest"],["impl Debug for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E, H, const ARITY: usize, N, T> Debug for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Debug,\n E: Element + Namespaced<Namespace = N> + Debug,\n T: NodeValue + Debug,\n N: Namespace + Debug,
    "],["impl<E, I, T, const ARITY: usize> Debug for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,
    "],["impl<E: Debug + Element, I: Debug + Index, T: Debug + NodeValue> Debug for MerkleNode<E, I, T>"],["impl<F: Debug + RescueParameter> Debug for RescueHash<F>"],["impl<F: Debug, P: Debug, N: Debug> Debug for LookupResult<F, P, N>"],["impl<H> Debug for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl Debug for PCSError"],["impl Debug for TranscriptError"],["impl<E: Debug + Pairing> Debug for MultilinearKzgBatchProof<E>"],["impl<E: Debug + Pairing> Debug for MultilinearKzgProof<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for Commitment<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearProverParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearUniversalParams<E>
    where\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for MultilinearVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateProverParam<E>
    where\n E::G1Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateUniversalParams<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateVerifierParam<E>
    where\n E::G1Affine: Debug,\n E::G2Affine: Debug,
    "],["impl<E: Debug + Pairing> Debug for UnivariateKzgProof<E>
    where\n E::G1Affine: Debug,
    "]], +"jf_plonk":[["impl Debug for PlonkError"],["impl Debug for SnarkError"],["impl<E: Debug + Pairing> Debug for VerifyingKeyVar<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for BatchProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for PlookupVerifyingKey<E>"],["impl<E: Debug + Pairing> Debug for Proof<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for ProvingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<E: Debug + Pairing> Debug for VerifyingKey<E>
    where\n E::ScalarField: Debug,
    "],["impl<F: Debug + Field> Debug for PlookupEvaluations<F>"],["impl<F: Debug + Field> Debug for ProofEvaluations<F>"],["impl<F: Debug + PrimeField> Debug for BatchProofVar<F>"]], +"jf_relation":[["impl Debug for MergeableCircuitType"],["impl Debug for PlonkType"],["impl Debug for CircuitError"],["impl Debug for BoolVar"],["impl Debug for PointVariable"],["impl Debug for AdditionGate"],["impl Debug for BoolGate"],["impl Debug for EqualityGate"],["impl Debug for FifthRootGate"],["impl Debug for IoGate"],["impl Debug for MultiplicationGate"],["impl Debug for PaddingGate"],["impl Debug for SubtractionGate"],["impl<E: Debug + PrimeField> Debug for EmulatedSWPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedTEPointVariable<E>"],["impl<E: Debug + PrimeField> Debug for EmulatedVariable<E>"],["impl<F> Debug for PlonkCircuit<F>
    where\n F: FftField + Debug,
    "],["impl<F: Debug + Field> Debug for ConstantAdditionGate<F>"],["impl<F: Debug + Field> Debug for ConstantGate<F>"],["impl<F: Debug + Field> Debug for LookupGate<F>"],["impl<F: Debug + PrimeField> Debug for SWPoint<F>"],["impl<F: Debug + PrimeField> Debug for TEPoint<F>"],["impl<F: Debug + PrimeField> Debug for FpElem<F>"],["impl<F: Debug + PrimeField> Debug for FpElemVar<F>"],["impl<F: Debug> Debug for ConstantMultiplicationGate<F>"],["impl<F: Field> Debug for dyn Gate<F> + 'static"]], +"jf_rescue":[["impl Debug for RescueError"],["impl<F: Debug + RescueParameter> Debug for RescueCRHF<F>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Debug for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Debug for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const OUTPUT_LEN: usize> Debug for VariableLengthRescueCRHF<F, OUTPUT_LEN>"],["impl<F: Debug + RescueParameter, const RATE: usize> Debug for RescueSponge<F, RATE>"],["impl<F: Debug> Debug for PRP<F>"],["impl<F: Debug> Debug for Permutation<F>"],["impl<F: Debug> Debug for RescueMatrix<F>"],["impl<F: Debug> Debug for RescueVector<F>"]], +"jf_signature":[["impl Debug for SignatureError"]], +"jf_utils":[["impl Debug for RSCodeError"]], +"jf_vdf":[["impl Debug for MinRootPP"],["impl Debug for VDFError"],["impl<F: Debug + MinRootField> Debug for MinRootElement<F>"]], +"jf_vid":[["impl Debug for VidError"],["impl<E> Debug for PrecomputeData<E>
    where\n E: Pairing + Debug,
    "],["impl<E, H> Debug for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Debug for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,
    "],["impl<F: Debug> Debug for LargeRangeProof<F>"],["impl<P: Debug> Debug for SmallRangeProof<P>"],["impl<V: VidScheme + ?Sized> Debug for VidDisperse<V>
    where\n V::Share: Debug,\n V::Common: Debug,\n V::Commit: Debug,
    "]], +"jf_vrf":[["impl Debug for BLSVRFCipherSuite"],["impl Debug for BLSVRFError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/fmt/trait.Display.js b/trait.impl/core/fmt/trait.Display.js index 90631b24d..dec3bfd8f 100644 --- a/trait.impl/core/fmt/trait.Display.js +++ b/trait.impl/core/fmt/trait.Display.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Display for AEADError"]], -"jf_elgamal":[["impl Display for ParameterError"]], -"jf_merkle_tree":[["impl Display for MerkleTreeError"],["impl<H> Display for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl Display for PCSError"],["impl Display for TranscriptError"]], -"jf_plonk":[["impl Display for PlonkError"],["impl Display for SnarkError"],["impl<E: Pairing> Display for BatchProof<E>"],["impl<E: Pairing> Display for Proof<E>"]], -"jf_relation":[["impl Display for CircuitError"]], -"jf_rescue":[["impl Display for RescueError"]], -"jf_signature":[["impl Display for SignatureError"]], -"jf_utils":[["impl Display for RSCodeError"]], -"jf_vdf":[["impl Display for VDFError"]], -"jf_vid":[["impl Display for VidError"]], -"jf_vrf":[["impl Display for BLSVRFError"]] +"jf_aead":[["impl Display for AEADError"]], +"jf_elgamal":[["impl Display for ParameterError"]], +"jf_merkle_tree":[["impl Display for MerkleTreeError"],["impl<H> Display for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl Display for PCSError"],["impl Display for TranscriptError"]], +"jf_plonk":[["impl Display for PlonkError"],["impl Display for SnarkError"],["impl<E: Pairing> Display for BatchProof<E>"],["impl<E: Pairing> Display for Proof<E>"]], +"jf_relation":[["impl Display for CircuitError"]], +"jf_rescue":[["impl Display for RescueError"]], +"jf_signature":[["impl Display for SignatureError"]], +"jf_utils":[["impl Display for RSCodeError"]], +"jf_vdf":[["impl Display for VDFError"]], +"jf_vid":[["impl Display for VidError"]], +"jf_vrf":[["impl Display for BLSVRFError"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/hash/trait.Hash.js b/trait.impl/core/hash/trait.Hash.js index a85e50d41..3f03192df 100644 --- a/trait.impl/core/hash/trait.Hash.js +++ b/trait.impl/core/hash/trait.Hash.js @@ -1,9 +1,9 @@ (function() {var implementors = { -"jf_aead":[["impl Hash for AEADError"],["impl Hash for Ciphertext"],["impl Hash for EncKey"]], -"jf_elgamal":[["impl<P> Hash for Ciphertext<P>
    where\n P: Config,
    "],["impl<P: Config> Hash for EncKey<P>"]], -"jf_merkle_tree":[["impl Hash for Sha3Digest"],["impl Hash for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, const ARITY: usize, N, T> Hash for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Hash,\n E: Element + Namespaced<Namespace = N> + Hash,\n T: NodeValue + Hash,\n N: Namespace + Hash,
    "],["impl<E, I, T, const ARITY: usize> Hash for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E: Hash + Element, I: Hash + Index, T: Hash + NodeValue> Hash for MerkleNode<E, I, T>"],["impl<F: Hash + Field> Hash for Interval<F>"],["impl<F: Hash, P: Hash, N: Hash> Hash for LookupResult<F, P, N>"],["impl<H> Hash for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_pcs":[["impl<E: Pairing> Hash for MultilinearKzgProof<E>"],["impl<E: Pairing> Hash for Commitment<E>"],["impl<E: Pairing> Hash for UnivariateKzgProof<E>"]], -"jf_plonk":[["impl<E> Hash for BatchProof<E>
    where\n E: Pairing,
    "],["impl<E> Hash for PlookupProof<E>
    where\n E: Pairing,
    "],["impl<E> Hash for Proof<E>
    where\n E: Pairing,
    "],["impl<F: Hash + Field> Hash for PlookupEvaluations<F>"],["impl<F: Hash + Field> Hash for ProofEvaluations<F>"]], -"jf_relation":[["impl Hash for MergeableCircuitType"],["impl Hash for PlonkType"]], -"jf_vid":[["impl<E> Hash for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Hash for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Hash for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<V: VidScheme + ?Sized> Hash for VidDisperse<V>
    where\n V::Share: Hash,\n V::Common: Hash,\n V::Commit: Hash,
    "]] +"jf_aead":[["impl Hash for AEADError"],["impl Hash for Ciphertext"],["impl Hash for EncKey"]], +"jf_elgamal":[["impl<P> Hash for Ciphertext<P>
    where\n P: Config,
    "],["impl<P: Config> Hash for EncKey<P>"]], +"jf_merkle_tree":[["impl Hash for Sha3Digest"],["impl Hash for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E, H, const ARITY: usize, N, T> Hash for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N> + Hash,\n E: Element + Namespaced<Namespace = N> + Hash,\n T: NodeValue + Hash,\n N: Namespace + Hash,
    "],["impl<E, I, T, const ARITY: usize> Hash for MerkleProof<E, I, T, ARITY>
    where\n E: Element + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,
    "],["impl<E: Hash + Element, I: Hash + Index, T: Hash + NodeValue> Hash for MerkleNode<E, I, T>"],["impl<F: Hash + Field> Hash for Interval<F>"],["impl<F: Hash, P: Hash, N: Hash> Hash for LookupResult<F, P, N>"],["impl<H> Hash for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_pcs":[["impl<E: Pairing> Hash for MultilinearKzgProof<E>"],["impl<E: Pairing> Hash for Commitment<E>"],["impl<E: Pairing> Hash for UnivariateKzgProof<E>"]], +"jf_plonk":[["impl<E> Hash for BatchProof<E>
    where\n E: Pairing,
    "],["impl<E> Hash for PlookupProof<E>
    where\n E: Pairing,
    "],["impl<E> Hash for Proof<E>
    where\n E: Pairing,
    "],["impl<F: Hash + Field> Hash for PlookupEvaluations<F>"],["impl<F: Hash + Field> Hash for ProofEvaluations<F>"]], +"jf_relation":[["impl Hash for MergeableCircuitType"],["impl Hash for PlonkType"]], +"jf_vid":[["impl<E> Hash for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Hash for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Hash for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<V: VidScheme + ?Sized> Hash for VidDisperse<V>
    where\n V::Share: Hash,\n V::Common: Hash,\n V::Commit: Hash,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/iter/traits/collect/trait.IntoIterator.js b/trait.impl/core/iter/traits/collect/trait.IntoIterator.js index 2038099f9..b568a1482 100644 --- a/trait.impl/core/iter/traits/collect/trait.IntoIterator.js +++ b/trait.impl/core/iter/traits/collect/trait.IntoIterator.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_merkle_tree":[["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "]] +"jf_merkle_tree":[["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<'a, E, H, I, const ARITY: usize, T> IntoIterator for &'a UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Copy.js b/trait.impl/core/marker/trait.Copy.js index ec4bce083..4f5735b1f 100644 --- a/trait.impl/core/marker/trait.Copy.js +++ b/trait.impl/core/marker/trait.Copy.js @@ -1,8 +1,8 @@ (function() {var implementors = { -"jf_aead":[["impl Copy for AEADError"]], -"jf_merkle_tree":[["impl Copy for Sha3Node"],["impl<F: Copy + RescueParameter> Copy for RescueHash<F>"],["impl<F: Copy + Field> Copy for Interval<F>"],["impl<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>"],["impl<H> Copy for HasherNode<H>
    where\n H: Digest,\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,
    "]], -"jf_pcs":[["impl<E: Copy + Pairing> Copy for Commitment<E>
    where\n E::G1Affine: Copy,
    "]], -"jf_relation":[["impl Copy for MergeableCircuitType"],["impl Copy for PlonkType"],["impl Copy for BoolVar"],["impl Copy for PointVariable"],["impl<F: Copy + PrimeField> Copy for SWPoint<F>"],["impl<F: Copy + PrimeField> Copy for TEPoint<F>"],["impl<F: Copy + PrimeField> Copy for FpElem<F>"],["impl<F: Copy + PrimeField> Copy for FpElemVar<F>"]], -"jf_rescue":[["impl<F: Copy> Copy for RescueVector<F>"]], -"jf_vdf":[["impl Copy for MinRootPP"],["impl<F: Copy + MinRootField> Copy for MinRootElement<F>"]] +"jf_aead":[["impl Copy for AEADError"]], +"jf_merkle_tree":[["impl Copy for Sha3Node"],["impl<F: Copy + RescueParameter> Copy for RescueHash<F>"],["impl<F: Copy + Field> Copy for Interval<F>"],["impl<F: Copy, P: Copy, N: Copy> Copy for LookupResult<F, P, N>"],["impl<H> Copy for HasherNode<H>
    where\n H: Digest,\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Copy,
    "]], +"jf_pcs":[["impl<E: Copy + Pairing> Copy for Commitment<E>
    where\n E::G1Affine: Copy,
    "]], +"jf_relation":[["impl Copy for MergeableCircuitType"],["impl Copy for PlonkType"],["impl Copy for BoolVar"],["impl Copy for PointVariable"],["impl<F: Copy + PrimeField> Copy for SWPoint<F>"],["impl<F: Copy + PrimeField> Copy for TEPoint<F>"],["impl<F: Copy + PrimeField> Copy for FpElem<F>"],["impl<F: Copy + PrimeField> Copy for FpElemVar<F>"]], +"jf_rescue":[["impl<F: Copy> Copy for RescueVector<F>"]], +"jf_vdf":[["impl Copy for MinRootPP"],["impl<F: Copy + MinRootField> Copy for MinRootElement<F>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Freeze.js b/trait.impl/core/marker/trait.Freeze.js index aa139d10a..698c9430e 100644 --- a/trait.impl/core/marker/trait.Freeze.js +++ b/trait.impl/core/marker/trait.Freeze.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Freeze for AEADError",1,["jf_aead::AEADError"]],["impl Freeze for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Freeze for EncKey",1,["jf_aead::EncKey"]],["impl Freeze for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl Freeze for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Freeze for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> Freeze for EncKey<P>
    where\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::EncKey"]],["impl<P> Freeze for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: Freeze,\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl Freeze for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Freeze for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Freeze for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Freeze for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Freeze for MerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Freeze for LightWeightMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Freeze for UniversalMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Freeze for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Freeze for MerkleNode<E, I, T>
    where\n T: Freeze,\n I: Freeze,\n E: Freeze,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Freeze for MerkleProof<E, I, T, ARITY>
    where\n I: Freeze,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Freeze for Interval<F>
    where\n F: Freeze,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Freeze for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Freeze for LookupResult<F, P, N>
    where\n F: Freeze,\n P: Freeze,\n N: Freeze,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Freeze for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Freeze,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl Freeze for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Freeze for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Freeze for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Freeze for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Freeze for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Freeze for Commitment<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> Freeze for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Freeze for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Freeze for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Freeze for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Freeze for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Freeze for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Freeze for UnivariateKzgPCS<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Freeze for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Freeze for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl Freeze for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Freeze for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Freeze for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Freeze for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> Freeze for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Freeze for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Freeze for Instance<E>
    where\n <E as Pairing>::ScalarField: Freeze,\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Freeze for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Freeze for BatchProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Freeze for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::ScalarField: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Freeze for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Freeze for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Freeze for Proof<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::ScalarField: Freeze,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Freeze for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Freeze for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Freeze for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Freeze for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Freeze for PlookupEvaluations<F>
    where\n F: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Freeze for ProofEvaluations<F>
    where\n F: Freeze,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Freeze for RescueTranscript<F>
    where\n F: Freeze,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl Freeze for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Freeze for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Freeze for CircuitError",1,["jf_relation::CircuitError"]],["impl Freeze for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Freeze for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Freeze for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Freeze for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Freeze for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Freeze for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Freeze for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Freeze for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Freeze for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Freeze for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Freeze for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Freeze for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Freeze for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Freeze for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Freeze for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Freeze for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> Freeze for PlonkCircuit<F>
    where\n F: Freeze,
    ",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Freeze for SWPoint<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Freeze for TEPoint<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Freeze for FpElem<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Freeze for FpElemVar<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Freeze for ConstantAdditionGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Freeze for ConstantGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Freeze for ConstantMultiplicationGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Freeze for LinCombGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Freeze for LookupGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Freeze for MulAddGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Freeze for QuadPolyGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Freeze for QuaternaryPointSelectXGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Freeze for QuaternaryPointSelectYGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Freeze for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Freeze for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Freeze for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl Freeze for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Freeze for RescueCRHF<F>
    where\n F: Freeze,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Freeze for PRP<F>
    where\n F: Freeze,
    ",1,["jf_rescue::PRP"]],["impl<F> Freeze for Permutation<F>
    where\n F: Freeze,
    ",1,["jf_rescue::Permutation"]],["impl<F> Freeze for RescueMatrix<F>
    where\n F: Freeze,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Freeze for RescueVector<F>
    where\n F: Freeze,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Freeze for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Freeze for RescueSponge<F, RATE>
    where\n F: Freeze,
    ",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl Freeze for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl Freeze for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Freeze for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl Freeze for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Freeze for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Freeze for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Freeze for MinRootElement<F>
    where\n F: Freeze,
    ",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl Freeze for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Freeze for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Freeze for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Freeze for Common<E, H>
    where\n <H as HasherDigest>::Bar: Freeze,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> Freeze for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Freeze for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,\n T: Freeze,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Freeze for LargeRangeProof<F>",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Freeze for SmallRangeProof<P>",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Freeze for VidDisperse<V>
    where\n <V as VidScheme>::Common: Freeze,\n <V as VidScheme>::Commit: Freeze,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl Freeze for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Freeze for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]],["impl Freeze for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]]] +"jf_aead":[["impl Freeze for AEADError",1,["jf_aead::AEADError"]],["impl Freeze for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Freeze for EncKey",1,["jf_aead::EncKey"]],["impl Freeze for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl Freeze for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Freeze for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> Freeze for EncKey<P>
    where\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::EncKey"]],["impl<P> Freeze for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: Freeze,\n <P as CurveConfig>::BaseField: Freeze,
    ",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl Freeze for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Freeze for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Freeze for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Freeze for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Freeze for MerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Freeze for LightWeightMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Freeze for UniversalMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Freeze for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Freeze for MerkleNode<E, I, T>
    where\n T: Freeze,\n I: Freeze,\n E: Freeze,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Freeze for MerkleProof<E, I, T, ARITY>
    where\n I: Freeze,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Freeze for Interval<F>
    where\n F: Freeze,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Freeze for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Freeze for LookupResult<F, P, N>
    where\n F: Freeze,\n P: Freeze,\n N: Freeze,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Freeze for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Freeze,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl Freeze for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Freeze for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Freeze for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Freeze for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Freeze for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Freeze for Commitment<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> Freeze for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Freeze for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Freeze for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Freeze for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Freeze for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Freeze for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Freeze for UnivariateKzgPCS<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Freeze for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Freeze for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl Freeze for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Freeze for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Freeze for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Freeze for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> Freeze for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Freeze for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Freeze for Instance<E>
    where\n <E as Pairing>::ScalarField: Freeze,\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Freeze for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Freeze for BatchProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Freeze for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::ScalarField: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Freeze for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Freeze for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Freeze for Proof<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::ScalarField: Freeze,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Freeze for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Freeze for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Freeze for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Freeze for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Freeze for PlookupEvaluations<F>
    where\n F: Freeze,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Freeze for ProofEvaluations<F>
    where\n F: Freeze,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Freeze for RescueTranscript<F>
    where\n F: Freeze,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl Freeze for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Freeze for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Freeze for CircuitError",1,["jf_relation::CircuitError"]],["impl Freeze for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Freeze for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Freeze for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Freeze for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Freeze for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Freeze for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Freeze for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Freeze for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Freeze for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Freeze for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Freeze for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Freeze for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Freeze for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Freeze for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Freeze for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Freeze for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> Freeze for PlonkCircuit<F>
    where\n F: Freeze,
    ",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Freeze for SWPoint<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Freeze for TEPoint<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Freeze for FpElem<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Freeze for FpElemVar<F>
    where\n F: Freeze,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Freeze for ConstantAdditionGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Freeze for ConstantGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Freeze for ConstantMultiplicationGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Freeze for LinCombGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Freeze for LookupGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Freeze for MulAddGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Freeze for QuadPolyGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Freeze for QuaternaryPointSelectXGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Freeze for QuaternaryPointSelectYGate<F>
    where\n F: Freeze,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Freeze for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Freeze for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Freeze for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl Freeze for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Freeze for RescueCRHF<F>
    where\n F: Freeze,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Freeze for PRP<F>
    where\n F: Freeze,
    ",1,["jf_rescue::PRP"]],["impl<F> Freeze for Permutation<F>
    where\n F: Freeze,
    ",1,["jf_rescue::Permutation"]],["impl<F> Freeze for RescueMatrix<F>
    where\n F: Freeze,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Freeze for RescueVector<F>
    where\n F: Freeze,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Freeze for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Freeze for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Freeze for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Freeze for RescueSponge<F, RATE>
    where\n F: Freeze,
    ",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl Freeze for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl Freeze for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Freeze for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl Freeze for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Freeze for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Freeze for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Freeze for MinRootElement<F>
    where\n F: Freeze,
    ",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl Freeze for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Freeze for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Freeze for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Freeze for Common<E, H>
    where\n <H as HasherDigest>::Bar: Freeze,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> Freeze for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Freeze for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: Freeze,\n <E as Pairing>::G2Affine: Freeze,\n T: Freeze,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Freeze for LargeRangeProof<F>",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Freeze for SmallRangeProof<P>",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Freeze for VidDisperse<V>
    where\n <V as VidScheme>::Common: Freeze,\n <V as VidScheme>::Commit: Freeze,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl Freeze for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Freeze for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]],["impl Freeze for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Send.js b/trait.impl/core/marker/trait.Send.js index 76dbce52d..9db5febff 100644 --- a/trait.impl/core/marker/trait.Send.js +++ b/trait.impl/core/marker/trait.Send.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Send for AEADError",1,["jf_aead::AEADError"]],["impl Send for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Send for EncKey",1,["jf_aead::EncKey"]],["impl Send for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl Send for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Send for Ciphertext<P>",1,["jf_elgamal::Ciphertext"]],["impl<P> Send for EncKey<P>",1,["jf_elgamal::EncKey"]],["impl<P> Send for KeyPair<P>",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl Send for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Send for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Send for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Send for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Send for MerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Send for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Send for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Send for NMT<E, H, ARITY, N, T>
    where\n N: Send,\n E: Sync + Send,\n T: Send,\n H: Send,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Send for MerkleNode<E, I, T>
    where\n T: Send,\n I: Send + Sync,\n E: Send + Sync,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Send for MerkleProof<E, I, T, ARITY>
    where\n I: Send + Sync,\n T: Send,\n E: Send + Sync,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Send for Interval<F>",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Send for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Send for LookupResult<F, P, N>
    where\n F: Send,\n P: Send,\n N: Send,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Send for HasherNode<H>",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl Send for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Send for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Send for MultilinearKzgBatchProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Send for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Send for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Send for Commitment<E>",1,["jf_pcs::structs::Commitment"]],["impl<E> Send for MultilinearProverParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Send for MultilinearUniversalParams<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Send for MultilinearVerifierParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Send for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Send for UnivariateUniversalParams<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Send for UnivariateVerifierParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Send for UnivariateKzgPCS<E>
    where\n E: Send,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Send for UnivariateKzgProof<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Send for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl Send for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Send for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Send for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Send for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !Send for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Send for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Send for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Send for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Send for BatchProof<E>",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Send for PlookupProof<E>",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Send for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Send for PlookupVerifyingKey<E>",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Send for Proof<E>",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Send for ProvingKey<E>",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Send for VerifyingKey<E>",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Send for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Send for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Send for PlookupEvaluations<F>",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Send for ProofEvaluations<F>",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Send for RescueTranscript<F>",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl Send for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Send for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Send for CircuitError",1,["jf_relation::CircuitError"]],["impl Send for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Send for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Send for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Send for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Send for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Send for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Send for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Send for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Send for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Send for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Send for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Send for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Send for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Send for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Send for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Send for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !Send for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Send for SWPoint<F>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Send for TEPoint<F>",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Send for FpElem<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Send for FpElemVar<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Send for ConstantAdditionGate<F>",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Send for ConstantGate<F>",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Send for ConstantMultiplicationGate<F>
    where\n F: Send,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Send for LinCombGate<F>",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Send for LookupGate<F>",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Send for MulAddGate<F>",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Send for QuadPolyGate<F>",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Send for QuaternaryPointSelectXGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Send for QuaternaryPointSelectYGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Send for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Send for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Send for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl Send for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Send for RescueCRHF<F>",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Send for PRP<F>
    where\n F: Send,
    ",1,["jf_rescue::PRP"]],["impl<F> Send for Permutation<F>
    where\n F: Send,
    ",1,["jf_rescue::Permutation"]],["impl<F> Send for RescueMatrix<F>
    where\n F: Send,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Send for RescueVector<F>
    where\n F: Send,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Send for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Send for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Send for RescueSponge<F, RATE>",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl Send for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl Send for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Send for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl Send for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Send for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Send for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Send for MinRootElement<F>",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl Send for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Send for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Send for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Send for Common<E, H>",1,["jf_vid::advz::Common"]],["impl<E, H> Send for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Send for AdvzInternal<E, H, T>
    where\n T: Send,\n H: Send,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Send for LargeRangeProof<F>
    where\n F: Send,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Send for SmallRangeProof<P>
    where\n P: Send,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Send for VidDisperse<V>
    where\n <V as VidScheme>::Common: Send,\n <V as VidScheme>::Commit: Send,\n <V as VidScheme>::Share: Send,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl !Send for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl Send for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Send for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] +"jf_aead":[["impl Send for AEADError",1,["jf_aead::AEADError"]],["impl Send for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Send for EncKey",1,["jf_aead::EncKey"]],["impl Send for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl Send for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Send for Ciphertext<P>",1,["jf_elgamal::Ciphertext"]],["impl<P> Send for EncKey<P>",1,["jf_elgamal::EncKey"]],["impl<P> Send for KeyPair<P>",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl Send for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Send for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Send for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Send for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Send for MerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Send for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Send for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Send,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Send for NMT<E, H, ARITY, N, T>
    where\n N: Send,\n E: Sync + Send,\n T: Send,\n H: Send,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Send for MerkleNode<E, I, T>
    where\n T: Send,\n I: Send + Sync,\n E: Send + Sync,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Send for MerkleProof<E, I, T, ARITY>
    where\n I: Send + Sync,\n T: Send,\n E: Send + Sync,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Send for Interval<F>",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Send for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Send for LookupResult<F, P, N>
    where\n F: Send,\n P: Send,\n N: Send,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Send for HasherNode<H>",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl Send for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Send for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Send for MultilinearKzgBatchProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Send for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Send for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Send for Commitment<E>",1,["jf_pcs::structs::Commitment"]],["impl<E> Send for MultilinearProverParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Send for MultilinearUniversalParams<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Send for MultilinearVerifierParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Send for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Send for UnivariateUniversalParams<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Send for UnivariateVerifierParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Send for UnivariateKzgPCS<E>
    where\n E: Send,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Send for UnivariateKzgProof<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Send for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl Send for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Send for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Send for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Send for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !Send for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Send for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Send for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Send for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Send for BatchProof<E>",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Send for PlookupProof<E>",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Send for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Send for PlookupVerifyingKey<E>",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Send for Proof<E>",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Send for ProvingKey<E>",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Send for VerifyingKey<E>",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Send for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Send for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Send for PlookupEvaluations<F>",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Send for ProofEvaluations<F>",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Send for RescueTranscript<F>",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl Send for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Send for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Send for CircuitError",1,["jf_relation::CircuitError"]],["impl Send for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Send for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Send for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Send for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Send for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Send for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Send for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Send for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Send for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Send for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Send for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Send for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Send for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Send for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Send for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Send for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !Send for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Send for SWPoint<F>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Send for TEPoint<F>",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Send for FpElem<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Send for FpElemVar<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Send for ConstantAdditionGate<F>",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Send for ConstantGate<F>",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Send for ConstantMultiplicationGate<F>
    where\n F: Send,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Send for LinCombGate<F>",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Send for LookupGate<F>",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Send for MulAddGate<F>",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Send for QuadPolyGate<F>",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Send for QuaternaryPointSelectXGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Send for QuaternaryPointSelectYGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Send for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Send for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Send for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl Send for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Send for RescueCRHF<F>",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Send for PRP<F>
    where\n F: Send,
    ",1,["jf_rescue::PRP"]],["impl<F> Send for Permutation<F>
    where\n F: Send,
    ",1,["jf_rescue::Permutation"]],["impl<F> Send for RescueMatrix<F>
    where\n F: Send,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Send for RescueVector<F>
    where\n F: Send,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Send for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Send for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Send for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Send for RescueSponge<F, RATE>",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl Send for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl Send for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Send for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl Send for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Send for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Send for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Send for MinRootElement<F>",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl Send for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Send for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Send for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Send for Common<E, H>",1,["jf_vid::advz::Common"]],["impl<E, H> Send for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Send for AdvzInternal<E, H, T>
    where\n T: Send,\n H: Send,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Send for LargeRangeProof<F>
    where\n F: Send,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Send for SmallRangeProof<P>
    where\n P: Send,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Send for VidDisperse<V>
    where\n <V as VidScheme>::Common: Send,\n <V as VidScheme>::Commit: Send,\n <V as VidScheme>::Share: Send,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl !Send for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl Send for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Send for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.StructuralPartialEq.js b/trait.impl/core/marker/trait.StructuralPartialEq.js index 90971cca0..b5fabb2b7 100644 --- a/trait.impl/core/marker/trait.StructuralPartialEq.js +++ b/trait.impl/core/marker/trait.StructuralPartialEq.js @@ -1,11 +1,11 @@ (function() {var implementors = { -"jf_aead":[["impl StructuralPartialEq for AEADError"],["impl StructuralPartialEq for Ciphertext"]], -"jf_merkle_tree":[["impl StructuralPartialEq for MerkleTreeError"],["impl StructuralPartialEq for Sha3Digest"],["impl StructuralPartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N>,\n T: NodeValue,\n N: Namespace,
    "],["impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>"],["impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>"],["impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>"],["impl<F: Field> StructuralPartialEq for Interval<F>"]], -"jf_pcs":[["impl<E: Pairing> StructuralPartialEq for MultilinearKzgBatchProof<E>"],["impl<E: Pairing> StructuralPartialEq for MultilinearKzgProof<E>"],["impl<E: Pairing> StructuralPartialEq for Commitment<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateProverParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateUniversalParams<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateVerifierParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateKzgProof<E>"]], -"jf_plonk":[["impl<E: Pairing> StructuralPartialEq for VerifyingKeyVar<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupVerifyingKey<E>"],["impl<E: Pairing> StructuralPartialEq for ProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for VerifyingKey<E>"],["impl<F: Field> StructuralPartialEq for PlookupEvaluations<F>"],["impl<F: Field> StructuralPartialEq for ProofEvaluations<F>"],["impl<F: PrimeField> StructuralPartialEq for BatchProofVar<F>"]], -"jf_relation":[["impl StructuralPartialEq for MergeableCircuitType"],["impl StructuralPartialEq for PlonkType"],["impl StructuralPartialEq for PointVariable"],["impl<F: PrimeField> StructuralPartialEq for SWPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for TEPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElem<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElemVar<F>"]], -"jf_rescue":[["impl StructuralPartialEq for RescueError"],["impl<F> StructuralPartialEq for RescueVector<F>"],["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> StructuralPartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]], -"jf_signature":[["impl StructuralPartialEq for SignatureError"]], -"jf_vdf":[["impl StructuralPartialEq for MinRootPP"],["impl StructuralPartialEq for VDFError"],["impl<F: MinRootField> StructuralPartialEq for MinRootElement<F>"]], -"jf_vid":[["impl<E> StructuralPartialEq for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,
    "],["impl<F> StructuralPartialEq for LargeRangeProof<F>"],["impl<P> StructuralPartialEq for SmallRangeProof<P>"]] +"jf_aead":[["impl StructuralPartialEq for AEADError"],["impl StructuralPartialEq for Ciphertext"]], +"jf_merkle_tree":[["impl StructuralPartialEq for MerkleTreeError"],["impl StructuralPartialEq for Sha3Digest"],["impl StructuralPartialEq for Sha3Node"],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> StructuralPartialEq for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N>,\n T: NodeValue,\n N: Namespace,
    "],["impl<E: Element, I: Index, T: NodeValue> StructuralPartialEq for MerkleNode<E, I, T>"],["impl<F, P, N> StructuralPartialEq for LookupResult<F, P, N>"],["impl<F: RescueParameter> StructuralPartialEq for RescueHash<F>"],["impl<F: Field> StructuralPartialEq for Interval<F>"]], +"jf_pcs":[["impl<E: Pairing> StructuralPartialEq for MultilinearKzgBatchProof<E>"],["impl<E: Pairing> StructuralPartialEq for MultilinearKzgProof<E>"],["impl<E: Pairing> StructuralPartialEq for Commitment<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateProverParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateUniversalParams<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateVerifierParam<E>"],["impl<E: Pairing> StructuralPartialEq for UnivariateKzgProof<E>"]], +"jf_plonk":[["impl<E: Pairing> StructuralPartialEq for VerifyingKeyVar<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for PlookupVerifyingKey<E>"],["impl<E: Pairing> StructuralPartialEq for ProvingKey<E>"],["impl<E: Pairing> StructuralPartialEq for VerifyingKey<E>"],["impl<F: Field> StructuralPartialEq for PlookupEvaluations<F>"],["impl<F: Field> StructuralPartialEq for ProofEvaluations<F>"],["impl<F: PrimeField> StructuralPartialEq for BatchProofVar<F>"]], +"jf_relation":[["impl StructuralPartialEq for MergeableCircuitType"],["impl StructuralPartialEq for PlonkType"],["impl StructuralPartialEq for PointVariable"],["impl<F: PrimeField> StructuralPartialEq for SWPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for TEPoint<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElem<F>"],["impl<F: PrimeField> StructuralPartialEq for FpElemVar<F>"]], +"jf_rescue":[["impl StructuralPartialEq for RescueError"],["impl<F> StructuralPartialEq for RescueVector<F>"],["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> StructuralPartialEq for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]], +"jf_signature":[["impl StructuralPartialEq for SignatureError"]], +"jf_vdf":[["impl StructuralPartialEq for MinRootPP"],["impl StructuralPartialEq for VDFError"],["impl<F: MinRootField> StructuralPartialEq for MinRootElement<F>"]], +"jf_vid":[["impl<E> StructuralPartialEq for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,
    "],["impl<F> StructuralPartialEq for LargeRangeProof<F>"],["impl<P> StructuralPartialEq for SmallRangeProof<P>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Sync.js b/trait.impl/core/marker/trait.Sync.js index 52f8da682..1d35a1a29 100644 --- a/trait.impl/core/marker/trait.Sync.js +++ b/trait.impl/core/marker/trait.Sync.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Sync for AEADError",1,["jf_aead::AEADError"]],["impl Sync for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Sync for EncKey",1,["jf_aead::EncKey"]],["impl Sync for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl Sync for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Sync for Ciphertext<P>",1,["jf_elgamal::Ciphertext"]],["impl<P> Sync for EncKey<P>",1,["jf_elgamal::EncKey"]],["impl<P> Sync for KeyPair<P>",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl Sync for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Sync for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Sync for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Sync for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Sync for MerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Sync for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Sync for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Sync for NMT<E, H, ARITY, N, T>
    where\n E: Sync + Send,\n N: Send,\n T: Send,\n H: Sync,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Sync for MerkleNode<E, I, T>
    where\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Sync for MerkleProof<E, I, T, ARITY>
    where\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Sync for Interval<F>",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Sync for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Sync for LookupResult<F, P, N>
    where\n F: Sync,\n P: Sync,\n N: Sync,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Sync for HasherNode<H>",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl Sync for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Sync for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Sync for MultilinearKzgBatchProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Sync for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Sync for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Sync for Commitment<E>",1,["jf_pcs::structs::Commitment"]],["impl<E> Sync for MultilinearProverParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Sync for MultilinearUniversalParams<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Sync for MultilinearVerifierParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Sync for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Sync for UnivariateUniversalParams<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Sync for UnivariateVerifierParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Sync for UnivariateKzgPCS<E>
    where\n E: Sync,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Sync for UnivariateKzgProof<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Sync for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl Sync for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Sync for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Sync for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Sync for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !Sync for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Sync for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Sync for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Sync for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Sync for BatchProof<E>",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Sync for PlookupProof<E>",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Sync for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Sync for PlookupVerifyingKey<E>",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Sync for Proof<E>",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Sync for ProvingKey<E>",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Sync for VerifyingKey<E>",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Sync for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Sync for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Sync for PlookupEvaluations<F>",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Sync for ProofEvaluations<F>",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Sync for RescueTranscript<F>",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl Sync for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Sync for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Sync for CircuitError",1,["jf_relation::CircuitError"]],["impl Sync for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Sync for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Sync for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Sync for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Sync for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Sync for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Sync for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Sync for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Sync for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Sync for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Sync for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Sync for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Sync for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Sync for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Sync for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Sync for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !Sync for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Sync for SWPoint<F>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Sync for TEPoint<F>",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Sync for FpElem<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Sync for FpElemVar<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Sync for ConstantAdditionGate<F>",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Sync for ConstantGate<F>",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Sync for ConstantMultiplicationGate<F>
    where\n F: Sync,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Sync for LinCombGate<F>",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Sync for LookupGate<F>",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Sync for MulAddGate<F>",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Sync for QuadPolyGate<F>",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Sync for QuaternaryPointSelectXGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Sync for QuaternaryPointSelectYGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Sync for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Sync for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Sync for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl Sync for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Sync for RescueCRHF<F>",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Sync for PRP<F>
    where\n F: Sync,
    ",1,["jf_rescue::PRP"]],["impl<F> Sync for Permutation<F>
    where\n F: Sync,
    ",1,["jf_rescue::Permutation"]],["impl<F> Sync for RescueMatrix<F>
    where\n F: Sync,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Sync for RescueVector<F>
    where\n F: Sync,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Sync for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Sync for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Sync for RescueSponge<F, RATE>",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl Sync for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl Sync for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Sync for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl Sync for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Sync for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Sync for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Sync for MinRootElement<F>",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl Sync for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Sync for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Sync for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Sync for Common<E, H>",1,["jf_vid::advz::Common"]],["impl<E, H> Sync for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Sync for AdvzInternal<E, H, T>
    where\n H: Sync,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Sync for LargeRangeProof<F>
    where\n F: Sync,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Sync for SmallRangeProof<P>
    where\n P: Sync,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Sync for VidDisperse<V>
    where\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl !Sync for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl Sync for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Sync for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] +"jf_aead":[["impl Sync for AEADError",1,["jf_aead::AEADError"]],["impl Sync for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Sync for EncKey",1,["jf_aead::EncKey"]],["impl Sync for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl Sync for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Sync for Ciphertext<P>",1,["jf_elgamal::Ciphertext"]],["impl<P> Sync for EncKey<P>",1,["jf_elgamal::EncKey"]],["impl<P> Sync for KeyPair<P>",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl Sync for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Sync for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Sync for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Sync for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Sync for MerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Sync for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Sync for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Sync,\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Sync for NMT<E, H, ARITY, N, T>
    where\n E: Sync + Send,\n N: Send,\n T: Send,\n H: Sync,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Sync for MerkleNode<E, I, T>
    where\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Sync for MerkleProof<E, I, T, ARITY>
    where\n I: Sync + Send,\n E: Sync + Send,\n T: Send,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Sync for Interval<F>",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Sync for RescueHash<F>",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Sync for LookupResult<F, P, N>
    where\n F: Sync,\n P: Sync,\n N: Sync,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Sync for HasherNode<H>",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl Sync for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Sync for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Sync for MultilinearKzgBatchProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Sync for MultilinearKzgPCS<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Sync for MultilinearKzgProof<E>",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Sync for Commitment<E>",1,["jf_pcs::structs::Commitment"]],["impl<E> Sync for MultilinearProverParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Sync for MultilinearUniversalParams<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Sync for MultilinearVerifierParam<E>",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Sync for UnivariateProverParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Sync for UnivariateUniversalParams<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Sync for UnivariateVerifierParam<E>",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Sync for UnivariateKzgPCS<E>
    where\n E: Sync,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Sync for UnivariateKzgProof<E>",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Sync for IOPTranscript<F>",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl Sync for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Sync for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Sync for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Sync for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !Sync for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Sync for VerifyingKeyVar<E>",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Sync for BatchArgument<E>",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Sync for PlonkKzgSnark<E>",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Sync for BatchProof<E>",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Sync for PlookupProof<E>",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Sync for PlookupProvingKey<E>",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Sync for PlookupVerifyingKey<E>",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Sync for Proof<E>",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Sync for ProvingKey<E>",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Sync for VerifyingKey<E>",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Sync for BatchProofVar<F>",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Sync for RescueTranscriptVar<F>",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Sync for PlookupEvaluations<F>",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Sync for ProofEvaluations<F>",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Sync for RescueTranscript<F>",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl Sync for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Sync for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Sync for CircuitError",1,["jf_relation::CircuitError"]],["impl Sync for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Sync for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Sync for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Sync for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Sync for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Sync for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Sync for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Sync for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Sync for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Sync for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Sync for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Sync for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Sync for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Sync for EmulatedSWPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Sync for EmulatedTEPointVariable<E>",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Sync for EmulatedVariable<E>",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !Sync for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Sync for SWPoint<F>",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Sync for TEPoint<F>",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Sync for FpElem<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Sync for FpElemVar<F>",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Sync for ConstantAdditionGate<F>",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Sync for ConstantGate<F>",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Sync for ConstantMultiplicationGate<F>
    where\n F: Sync,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Sync for LinCombGate<F>",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Sync for LookupGate<F>",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Sync for MulAddGate<F>",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Sync for QuadPolyGate<F>",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Sync for QuaternaryPointSelectXGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Sync for QuaternaryPointSelectYGate<F>",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Sync for CurvePointXAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Sync for CurvePointYAdditionGate<P>",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Sync for EdwardsCurveEquationGate<P>",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl Sync for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Sync for RescueCRHF<F>",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Sync for PRP<F>
    where\n F: Sync,
    ",1,["jf_rescue::PRP"]],["impl<F> Sync for Permutation<F>
    where\n F: Sync,
    ",1,["jf_rescue::Permutation"]],["impl<F> Sync for RescueMatrix<F>
    where\n F: Sync,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Sync for RescueVector<F>
    where\n F: Sync,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Sync for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Sync for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Sync for VariableLengthRescueCRHF<F, OUTPUT_LEN>",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Sync for RescueSponge<F, RATE>",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl Sync for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl Sync for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Sync for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl Sync for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Sync for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Sync for MinRoot<F>",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Sync for MinRootElement<F>",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl Sync for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Sync for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Sync for PrecomputeData<E>",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Sync for Common<E, H>",1,["jf_vid::advz::Common"]],["impl<E, H> Sync for Share<E, H>",1,["jf_vid::advz::Share"]],["impl<E, H, T> Sync for AdvzInternal<E, H, T>
    where\n H: Sync,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Sync for LargeRangeProof<F>
    where\n F: Sync,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Sync for SmallRangeProof<P>
    where\n P: Sync,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Sync for VidDisperse<V>
    where\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl !Sync for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl Sync for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Sync for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/marker/trait.Unpin.js b/trait.impl/core/marker/trait.Unpin.js index 2c161b3bd..6806bd73c 100644 --- a/trait.impl/core/marker/trait.Unpin.js +++ b/trait.impl/core/marker/trait.Unpin.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl Unpin for AEADError",1,["jf_aead::AEADError"]],["impl Unpin for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Unpin for EncKey",1,["jf_aead::EncKey"]],["impl Unpin for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl Unpin for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Unpin for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> Unpin for EncKey<P>
    where\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::EncKey"]],["impl<P> Unpin for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: Unpin,\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl Unpin for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Unpin for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Unpin for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Unpin for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Unpin for MerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Unpin for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Unpin for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Unpin for NMT<E, H, ARITY, N, T>
    where\n H: Unpin,\n E: Unpin,\n T: Unpin,\n N: Unpin,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Unpin for MerkleNode<E, I, T>
    where\n T: Unpin,\n I: Unpin,\n E: Unpin,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Unpin for MerkleProof<E, I, T, ARITY>
    where\n I: Unpin,\n T: Unpin,\n E: Unpin,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Unpin for Interval<F>
    where\n F: Unpin,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Unpin for RescueHash<F>
    where\n F: Unpin,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Unpin for LookupResult<F, P, N>
    where\n F: Unpin,\n P: Unpin,\n N: Unpin,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Unpin for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Unpin,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl Unpin for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Unpin for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Unpin for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Unpin for MultilinearKzgPCS<E>
    where\n E: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Unpin for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Unpin for Commitment<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> Unpin for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Unpin for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Unpin for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Unpin for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Unpin for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Unpin for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Unpin for UnivariateKzgPCS<E>
    where\n E: Unpin,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Unpin for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Unpin for IOPTranscript<F>
    where\n F: Unpin,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl Unpin for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Unpin for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Unpin for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Unpin for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> Unpin for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Unpin for BatchArgument<E>
    where\n E: Unpin,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Unpin for Instance<E>
    where\n <E as Pairing>::ScalarField: Unpin,\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Unpin for PlonkKzgSnark<E>
    where\n E: Unpin,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Unpin for BatchProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Unpin for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Unpin for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Unpin for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Unpin for Proof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Unpin for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Unpin for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Unpin for BatchProofVar<F>
    where\n F: Unpin,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Unpin for RescueTranscriptVar<F>
    where\n F: Unpin,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Unpin for PlookupEvaluations<F>
    where\n F: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Unpin for ProofEvaluations<F>
    where\n F: Unpin,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Unpin for RescueTranscript<F>
    where\n F: Unpin,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl Unpin for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Unpin for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Unpin for CircuitError",1,["jf_relation::CircuitError"]],["impl Unpin for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Unpin for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Unpin for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Unpin for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Unpin for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Unpin for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Unpin for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Unpin for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Unpin for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Unpin for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Unpin for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Unpin for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Unpin for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Unpin for EmulatedSWPointVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Unpin for EmulatedTEPointVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Unpin for EmulatedVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> Unpin for PlonkCircuit<F>
    where\n F: Unpin,
    ",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Unpin for SWPoint<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Unpin for TEPoint<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Unpin for FpElem<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Unpin for FpElemVar<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Unpin for ConstantAdditionGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Unpin for ConstantGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Unpin for ConstantMultiplicationGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Unpin for LinCombGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Unpin for LookupGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Unpin for MulAddGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Unpin for QuadPolyGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Unpin for QuaternaryPointSelectXGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Unpin for QuaternaryPointSelectYGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Unpin for CurvePointXAdditionGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Unpin for CurvePointYAdditionGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Unpin for EdwardsCurveEquationGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl Unpin for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Unpin for RescueCRHF<F>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Unpin for PRP<F>
    where\n F: Unpin,
    ",1,["jf_rescue::PRP"]],["impl<F> Unpin for Permutation<F>
    where\n F: Unpin,
    ",1,["jf_rescue::Permutation"]],["impl<F> Unpin for RescueMatrix<F>
    where\n F: Unpin,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Unpin for RescueVector<F>
    where\n F: Unpin,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Unpin for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: Unpin,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Unpin for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Unpin for RescueSponge<F, RATE>
    where\n F: Unpin,
    ",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl Unpin for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl Unpin for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Unpin for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl Unpin for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Unpin for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Unpin for MinRoot<F>
    where\n F: Unpin,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Unpin for MinRootElement<F>
    where\n F: Unpin,
    ",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl Unpin for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Unpin for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Unpin for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Unpin for Common<E, H>
    where\n <H as HasherDigest>::Bar: Unpin,\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> Unpin for Share<E, H>
    where\n <E as Pairing>::G1Affine: Unpin,\n <H as HasherDigest>::Bar: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> Unpin for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n T: Unpin,\n H: Unpin,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Unpin for LargeRangeProof<F>
    where\n F: Unpin,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Unpin for SmallRangeProof<P>
    where\n P: Unpin,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Unpin for VidDisperse<V>
    where\n <V as VidScheme>::Common: Unpin,\n <V as VidScheme>::Commit: Unpin,\n <V as VidScheme>::Share: Unpin,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl Unpin for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Unpin for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]],["impl Unpin for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]]] +"jf_aead":[["impl Unpin for AEADError",1,["jf_aead::AEADError"]],["impl Unpin for Ciphertext",1,["jf_aead::Ciphertext"]],["impl Unpin for EncKey",1,["jf_aead::EncKey"]],["impl Unpin for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl Unpin for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> Unpin for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> Unpin for EncKey<P>
    where\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::EncKey"]],["impl<P> Unpin for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: Unpin,\n <P as CurveConfig>::BaseField: Unpin,
    ",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl Unpin for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl Unpin for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl Unpin for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl Unpin for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> Unpin for MerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Unpin for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> Unpin for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: Unpin,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> Unpin for NMT<E, H, ARITY, N, T>
    where\n H: Unpin,\n E: Unpin,\n T: Unpin,\n N: Unpin,
    ",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> Unpin for MerkleNode<E, I, T>
    where\n T: Unpin,\n I: Unpin,\n E: Unpin,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> Unpin for MerkleProof<E, I, T, ARITY>
    where\n I: Unpin,\n T: Unpin,\n E: Unpin,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> Unpin for Interval<F>
    where\n F: Unpin,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> Unpin for RescueHash<F>
    where\n F: Unpin,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> Unpin for LookupResult<F, P, N>
    where\n F: Unpin,\n P: Unpin,\n N: Unpin,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> Unpin for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: Unpin,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl Unpin for PCSError",1,["jf_pcs::errors::PCSError"]],["impl Unpin for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> Unpin for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> Unpin for MultilinearKzgPCS<E>
    where\n E: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> Unpin for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> Unpin for Commitment<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> Unpin for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> Unpin for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> Unpin for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> Unpin for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> Unpin for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> Unpin for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> Unpin for UnivariateKzgPCS<E>
    where\n E: Unpin,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> Unpin for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> Unpin for IOPTranscript<F>
    where\n F: Unpin,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl Unpin for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl Unpin for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl Unpin for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl Unpin for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> Unpin for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> Unpin for BatchArgument<E>
    where\n E: Unpin,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> Unpin for Instance<E>
    where\n <E as Pairing>::ScalarField: Unpin,\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,
    ",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> Unpin for PlonkKzgSnark<E>
    where\n E: Unpin,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> Unpin for BatchProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> Unpin for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> Unpin for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> Unpin for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> Unpin for Proof<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> Unpin for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> Unpin for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> Unpin for BatchProofVar<F>
    where\n F: Unpin,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> Unpin for RescueTranscriptVar<F>
    where\n F: Unpin,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> Unpin for PlookupEvaluations<F>
    where\n F: Unpin,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> Unpin for ProofEvaluations<F>
    where\n F: Unpin,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> Unpin for RescueTranscript<F>
    where\n F: Unpin,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl Unpin for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl Unpin for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl Unpin for CircuitError",1,["jf_relation::CircuitError"]],["impl Unpin for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl Unpin for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl Unpin for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl Unpin for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl Unpin for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl Unpin for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl Unpin for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl Unpin for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl Unpin for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl Unpin for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl Unpin for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl Unpin for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl Unpin for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> Unpin for EmulatedSWPointVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> Unpin for EmulatedTEPointVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> Unpin for EmulatedVariable<E>
    where\n E: Unpin,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> Unpin for PlonkCircuit<F>
    where\n F: Unpin,
    ",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> Unpin for SWPoint<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> Unpin for TEPoint<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> Unpin for FpElem<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> Unpin for FpElemVar<F>
    where\n F: Unpin,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> Unpin for ConstantAdditionGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> Unpin for ConstantGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> Unpin for ConstantMultiplicationGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> Unpin for LinCombGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> Unpin for LookupGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> Unpin for MulAddGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> Unpin for QuadPolyGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> Unpin for QuaternaryPointSelectXGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> Unpin for QuaternaryPointSelectYGate<F>
    where\n F: Unpin,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> Unpin for CurvePointXAdditionGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> Unpin for CurvePointYAdditionGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> Unpin for EdwardsCurveEquationGate<P>
    where\n P: Unpin,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl Unpin for RescueError",1,["jf_rescue::RescueError"]],["impl<F> Unpin for RescueCRHF<F>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> Unpin for PRP<F>
    where\n F: Unpin,
    ",1,["jf_rescue::PRP"]],["impl<F> Unpin for Permutation<F>
    where\n F: Unpin,
    ",1,["jf_rescue::Permutation"]],["impl<F> Unpin for RescueMatrix<F>
    where\n F: Unpin,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> Unpin for RescueVector<F>
    where\n F: Unpin,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> Unpin for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: Unpin,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> Unpin for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> Unpin for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: Unpin,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> Unpin for RescueSponge<F, RATE>
    where\n F: Unpin,
    ",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl Unpin for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl Unpin for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl Unpin for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl Unpin for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl Unpin for VDFError",1,["jf_vdf::VDFError"]],["impl<F> Unpin for MinRoot<F>
    where\n F: Unpin,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> Unpin for MinRootElement<F>
    where\n F: Unpin,
    ",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl Unpin for VidError",1,["jf_vid::VidError"]],["impl<'a, V> Unpin for Statement<'a, V>
    where\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> Unpin for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> Unpin for Common<E, H>
    where\n <H as HasherDigest>::Bar: Unpin,\n <E as Pairing>::G1Affine: Unpin,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> Unpin for Share<E, H>
    where\n <E as Pairing>::G1Affine: Unpin,\n <H as HasherDigest>::Bar: Unpin,\n <E as Pairing>::ScalarField: Unpin,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> Unpin for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: Unpin,\n <E as Pairing>::G2Affine: Unpin,\n T: Unpin,\n H: Unpin,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> Unpin for LargeRangeProof<F>
    where\n F: Unpin,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> Unpin for SmallRangeProof<P>
    where\n P: Unpin,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> Unpin for VidDisperse<V>
    where\n <V as VidScheme>::Common: Unpin,\n <V as VidScheme>::Commit: Unpin,\n <V as VidScheme>::Share: Unpin,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl Unpin for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl Unpin for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]],["impl Unpin for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js index 5de639e5c..7aaab63ae 100644 --- a/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl RefUnwindSafe for AEADError",1,["jf_aead::AEADError"]],["impl RefUnwindSafe for Ciphertext",1,["jf_aead::Ciphertext"]],["impl RefUnwindSafe for EncKey",1,["jf_aead::EncKey"]],["impl RefUnwindSafe for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl RefUnwindSafe for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> RefUnwindSafe for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> RefUnwindSafe for EncKey<P>
    where\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::EncKey"]],["impl<P> RefUnwindSafe for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: RefUnwindSafe,\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl RefUnwindSafe for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl RefUnwindSafe for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl RefUnwindSafe for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl RefUnwindSafe for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for MerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> RefUnwindSafe for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> RefUnwindSafe for MerkleNode<E, I, T>
    where\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> RefUnwindSafe for MerkleProof<E, I, T, ARITY>
    where\n I: RefUnwindSafe,\n T: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> RefUnwindSafe for Interval<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> RefUnwindSafe for RescueHash<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> RefUnwindSafe for LookupResult<F, P, N>
    where\n F: RefUnwindSafe,\n P: RefUnwindSafe,\n N: RefUnwindSafe,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> RefUnwindSafe for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl !RefUnwindSafe for PCSError",1,["jf_pcs::errors::PCSError"]],["impl !RefUnwindSafe for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> RefUnwindSafe for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> RefUnwindSafe for MultilinearKzgPCS<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> RefUnwindSafe for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> RefUnwindSafe for Commitment<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> RefUnwindSafe for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> RefUnwindSafe for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> RefUnwindSafe for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> RefUnwindSafe for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> RefUnwindSafe for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> RefUnwindSafe for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> RefUnwindSafe for UnivariateKzgPCS<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> RefUnwindSafe for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> RefUnwindSafe for IOPTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl !RefUnwindSafe for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl RefUnwindSafe for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl RefUnwindSafe for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl RefUnwindSafe for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !RefUnwindSafe for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> RefUnwindSafe for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> RefUnwindSafe for BatchArgument<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> RefUnwindSafe for PlonkKzgSnark<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> RefUnwindSafe for BatchProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> RefUnwindSafe for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> RefUnwindSafe for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> RefUnwindSafe for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> RefUnwindSafe for Proof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> RefUnwindSafe for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> RefUnwindSafe for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> RefUnwindSafe for BatchProofVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> RefUnwindSafe for RescueTranscriptVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> RefUnwindSafe for PlookupEvaluations<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> RefUnwindSafe for ProofEvaluations<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> RefUnwindSafe for RescueTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl RefUnwindSafe for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl RefUnwindSafe for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl RefUnwindSafe for CircuitError",1,["jf_relation::CircuitError"]],["impl RefUnwindSafe for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl RefUnwindSafe for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl RefUnwindSafe for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl RefUnwindSafe for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl RefUnwindSafe for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl RefUnwindSafe for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl RefUnwindSafe for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl RefUnwindSafe for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl RefUnwindSafe for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl RefUnwindSafe for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl RefUnwindSafe for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl RefUnwindSafe for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl RefUnwindSafe for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> RefUnwindSafe for EmulatedSWPointVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> RefUnwindSafe for EmulatedTEPointVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> RefUnwindSafe for EmulatedVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !RefUnwindSafe for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> RefUnwindSafe for SWPoint<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> RefUnwindSafe for TEPoint<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> RefUnwindSafe for FpElem<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> RefUnwindSafe for FpElemVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> RefUnwindSafe for ConstantAdditionGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> RefUnwindSafe for ConstantGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> RefUnwindSafe for ConstantMultiplicationGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> RefUnwindSafe for LinCombGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> RefUnwindSafe for LookupGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> RefUnwindSafe for MulAddGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> RefUnwindSafe for QuadPolyGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> RefUnwindSafe for QuaternaryPointSelectXGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> RefUnwindSafe for QuaternaryPointSelectYGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> RefUnwindSafe for CurvePointXAdditionGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> RefUnwindSafe for CurvePointYAdditionGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> RefUnwindSafe for EdwardsCurveEquationGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl RefUnwindSafe for RescueError",1,["jf_rescue::RescueError"]],["impl<F> RefUnwindSafe for RescueCRHF<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> RefUnwindSafe for PRP<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::PRP"]],["impl<F> RefUnwindSafe for Permutation<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::Permutation"]],["impl<F> RefUnwindSafe for RescueMatrix<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> RefUnwindSafe for RescueVector<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> RefUnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> RefUnwindSafe for RescueSponge<F, RATE>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl RefUnwindSafe for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl RefUnwindSafe for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl RefUnwindSafe for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl RefUnwindSafe for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl RefUnwindSafe for VDFError",1,["jf_vdf::VDFError"]],["impl<F> RefUnwindSafe for MinRoot<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> RefUnwindSafe for MinRootElement<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl RefUnwindSafe for VidError",1,["jf_vid::VidError"]],["impl<'a, V> RefUnwindSafe for Statement<'a, V>
    where\n <V as VidScheme>::Commit: RefUnwindSafe,\n <V as VidScheme>::Common: RefUnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> RefUnwindSafe for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> RefUnwindSafe for Common<E, H>
    where\n <H as HasherDigest>::Bar: RefUnwindSafe,\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> RefUnwindSafe for Share<E, H>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <H as HasherDigest>::Bar: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> RefUnwindSafe for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n T: RefUnwindSafe,\n H: RefUnwindSafe,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> RefUnwindSafe for LargeRangeProof<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> RefUnwindSafe for SmallRangeProof<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> RefUnwindSafe for VidDisperse<V>",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl !RefUnwindSafe for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl RefUnwindSafe for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl RefUnwindSafe for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] +"jf_aead":[["impl RefUnwindSafe for AEADError",1,["jf_aead::AEADError"]],["impl RefUnwindSafe for Ciphertext",1,["jf_aead::Ciphertext"]],["impl RefUnwindSafe for EncKey",1,["jf_aead::EncKey"]],["impl RefUnwindSafe for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl RefUnwindSafe for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> RefUnwindSafe for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> RefUnwindSafe for EncKey<P>
    where\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::EncKey"]],["impl<P> RefUnwindSafe for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: RefUnwindSafe,\n <P as CurveConfig>::BaseField: RefUnwindSafe,
    ",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl RefUnwindSafe for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl RefUnwindSafe for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl RefUnwindSafe for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl RefUnwindSafe for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for MerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> RefUnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> RefUnwindSafe for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> RefUnwindSafe for MerkleNode<E, I, T>
    where\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> RefUnwindSafe for MerkleProof<E, I, T, ARITY>
    where\n I: RefUnwindSafe,\n T: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> RefUnwindSafe for Interval<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> RefUnwindSafe for RescueHash<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> RefUnwindSafe for LookupResult<F, P, N>
    where\n F: RefUnwindSafe,\n P: RefUnwindSafe,\n N: RefUnwindSafe,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> RefUnwindSafe for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: RefUnwindSafe,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl !RefUnwindSafe for PCSError",1,["jf_pcs::errors::PCSError"]],["impl !RefUnwindSafe for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> RefUnwindSafe for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> RefUnwindSafe for MultilinearKzgPCS<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> RefUnwindSafe for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> RefUnwindSafe for Commitment<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> RefUnwindSafe for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> RefUnwindSafe for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> RefUnwindSafe for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> RefUnwindSafe for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> RefUnwindSafe for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> RefUnwindSafe for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> RefUnwindSafe for UnivariateKzgPCS<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> RefUnwindSafe for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> RefUnwindSafe for IOPTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl !RefUnwindSafe for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl RefUnwindSafe for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl RefUnwindSafe for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl RefUnwindSafe for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !RefUnwindSafe for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> RefUnwindSafe for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> RefUnwindSafe for BatchArgument<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> RefUnwindSafe for PlonkKzgSnark<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> RefUnwindSafe for BatchProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> RefUnwindSafe for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> RefUnwindSafe for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> RefUnwindSafe for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> RefUnwindSafe for Proof<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> RefUnwindSafe for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> RefUnwindSafe for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> RefUnwindSafe for BatchProofVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> RefUnwindSafe for RescueTranscriptVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> RefUnwindSafe for PlookupEvaluations<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> RefUnwindSafe for ProofEvaluations<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> RefUnwindSafe for RescueTranscript<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl RefUnwindSafe for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl RefUnwindSafe for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl RefUnwindSafe for CircuitError",1,["jf_relation::CircuitError"]],["impl RefUnwindSafe for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl RefUnwindSafe for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl RefUnwindSafe for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl RefUnwindSafe for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl RefUnwindSafe for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl RefUnwindSafe for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl RefUnwindSafe for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl RefUnwindSafe for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl RefUnwindSafe for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl RefUnwindSafe for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl RefUnwindSafe for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl RefUnwindSafe for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl RefUnwindSafe for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> RefUnwindSafe for EmulatedSWPointVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> RefUnwindSafe for EmulatedTEPointVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> RefUnwindSafe for EmulatedVariable<E>
    where\n E: RefUnwindSafe,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !RefUnwindSafe for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> RefUnwindSafe for SWPoint<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> RefUnwindSafe for TEPoint<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> RefUnwindSafe for FpElem<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> RefUnwindSafe for FpElemVar<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> RefUnwindSafe for ConstantAdditionGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> RefUnwindSafe for ConstantGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> RefUnwindSafe for ConstantMultiplicationGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> RefUnwindSafe for LinCombGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> RefUnwindSafe for LookupGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> RefUnwindSafe for MulAddGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> RefUnwindSafe for QuadPolyGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> RefUnwindSafe for QuaternaryPointSelectXGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> RefUnwindSafe for QuaternaryPointSelectYGate<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> RefUnwindSafe for CurvePointXAdditionGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> RefUnwindSafe for CurvePointYAdditionGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> RefUnwindSafe for EdwardsCurveEquationGate<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl RefUnwindSafe for RescueError",1,["jf_rescue::RescueError"]],["impl<F> RefUnwindSafe for RescueCRHF<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> RefUnwindSafe for PRP<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::PRP"]],["impl<F> RefUnwindSafe for Permutation<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::Permutation"]],["impl<F> RefUnwindSafe for RescueMatrix<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> RefUnwindSafe for RescueVector<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> RefUnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> RefUnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> RefUnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> RefUnwindSafe for RescueSponge<F, RATE>
    where\n F: RefUnwindSafe,
    ",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl RefUnwindSafe for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl RefUnwindSafe for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl RefUnwindSafe for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl RefUnwindSafe for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl RefUnwindSafe for VDFError",1,["jf_vdf::VDFError"]],["impl<F> RefUnwindSafe for MinRoot<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> RefUnwindSafe for MinRootElement<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl RefUnwindSafe for VidError",1,["jf_vid::VidError"]],["impl<'a, V> RefUnwindSafe for Statement<'a, V>
    where\n <V as VidScheme>::Commit: RefUnwindSafe,\n <V as VidScheme>::Common: RefUnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> RefUnwindSafe for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> RefUnwindSafe for Common<E, H>
    where\n <H as HasherDigest>::Bar: RefUnwindSafe,\n <E as Pairing>::G1Affine: RefUnwindSafe,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> RefUnwindSafe for Share<E, H>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <H as HasherDigest>::Bar: RefUnwindSafe,\n <E as Pairing>::ScalarField: RefUnwindSafe,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> RefUnwindSafe for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: RefUnwindSafe,\n <E as Pairing>::G2Affine: RefUnwindSafe,\n T: RefUnwindSafe,\n H: RefUnwindSafe,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> RefUnwindSafe for LargeRangeProof<F>
    where\n F: RefUnwindSafe,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> RefUnwindSafe for SmallRangeProof<P>
    where\n P: RefUnwindSafe,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> RefUnwindSafe for VidDisperse<V>",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl !RefUnwindSafe for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl RefUnwindSafe for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl RefUnwindSafe for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js index 52e2a63bf..e72c372a9 100644 --- a/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/trait.impl/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,14 +1,14 @@ (function() {var implementors = { -"jf_aead":[["impl UnwindSafe for AEADError",1,["jf_aead::AEADError"]],["impl UnwindSafe for Ciphertext",1,["jf_aead::Ciphertext"]],["impl UnwindSafe for EncKey",1,["jf_aead::EncKey"]],["impl UnwindSafe for KeyPair",1,["jf_aead::KeyPair"]]], -"jf_elgamal":[["impl UnwindSafe for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> UnwindSafe for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> UnwindSafe for EncKey<P>
    where\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::EncKey"]],["impl<P> UnwindSafe for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: UnwindSafe,\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::KeyPair"]]], -"jf_merkle_tree":[["impl UnwindSafe for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl UnwindSafe for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl UnwindSafe for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl UnwindSafe for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for MerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> UnwindSafe for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> UnwindSafe for MerkleNode<E, I, T>",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> UnwindSafe for MerkleProof<E, I, T, ARITY>",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> UnwindSafe for Interval<F>
    where\n F: UnwindSafe,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> UnwindSafe for RescueHash<F>
    where\n F: UnwindSafe,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> UnwindSafe for LookupResult<F, P, N>
    where\n F: UnwindSafe,\n P: UnwindSafe,\n N: UnwindSafe,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> UnwindSafe for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: UnwindSafe,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], -"jf_pcs":[["impl !UnwindSafe for PCSError",1,["jf_pcs::errors::PCSError"]],["impl !UnwindSafe for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> UnwindSafe for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> UnwindSafe for MultilinearKzgPCS<E>
    where\n E: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> UnwindSafe for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> UnwindSafe for Commitment<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> UnwindSafe for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> UnwindSafe for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> UnwindSafe for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> UnwindSafe for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> UnwindSafe for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> UnwindSafe for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> UnwindSafe for UnivariateKzgPCS<E>
    where\n E: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> UnwindSafe for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> UnwindSafe for IOPTranscript<F>
    where\n F: UnwindSafe,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], -"jf_plonk":[["impl !UnwindSafe for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl UnwindSafe for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl UnwindSafe for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl UnwindSafe for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !UnwindSafe for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> UnwindSafe for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> UnwindSafe for BatchArgument<E>
    where\n E: UnwindSafe,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> UnwindSafe for PlonkKzgSnark<E>
    where\n E: UnwindSafe,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> UnwindSafe for BatchProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> UnwindSafe for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> UnwindSafe for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> UnwindSafe for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> UnwindSafe for Proof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> UnwindSafe for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> UnwindSafe for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> UnwindSafe for BatchProofVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> UnwindSafe for RescueTranscriptVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> UnwindSafe for PlookupEvaluations<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> UnwindSafe for ProofEvaluations<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> UnwindSafe for RescueTranscript<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], -"jf_relation":[["impl UnwindSafe for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl UnwindSafe for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl UnwindSafe for CircuitError",1,["jf_relation::CircuitError"]],["impl UnwindSafe for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl UnwindSafe for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl UnwindSafe for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl UnwindSafe for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl UnwindSafe for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl UnwindSafe for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl UnwindSafe for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl UnwindSafe for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl UnwindSafe for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl UnwindSafe for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl UnwindSafe for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl UnwindSafe for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl UnwindSafe for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> UnwindSafe for EmulatedSWPointVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> UnwindSafe for EmulatedTEPointVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> UnwindSafe for EmulatedVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !UnwindSafe for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> UnwindSafe for SWPoint<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> UnwindSafe for TEPoint<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> UnwindSafe for FpElem<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> UnwindSafe for FpElemVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> UnwindSafe for ConstantAdditionGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> UnwindSafe for ConstantGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> UnwindSafe for ConstantMultiplicationGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> UnwindSafe for LinCombGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> UnwindSafe for LookupGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> UnwindSafe for MulAddGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> UnwindSafe for QuadPolyGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> UnwindSafe for QuaternaryPointSelectXGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> UnwindSafe for QuaternaryPointSelectYGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> UnwindSafe for CurvePointXAdditionGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> UnwindSafe for CurvePointYAdditionGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> UnwindSafe for EdwardsCurveEquationGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], -"jf_rescue":[["impl UnwindSafe for RescueError",1,["jf_rescue::RescueError"]],["impl<F> UnwindSafe for RescueCRHF<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> UnwindSafe for PRP<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::PRP"]],["impl<F> UnwindSafe for Permutation<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::Permutation"]],["impl<F> UnwindSafe for RescueMatrix<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> UnwindSafe for RescueVector<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> UnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> UnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> UnwindSafe for RescueSponge<F, RATE>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::sponge::RescueSponge"]]], -"jf_signature":[["impl UnwindSafe for SignatureError",1,["jf_signature::SignatureError"]]], -"jf_utils":[["impl UnwindSafe for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl UnwindSafe for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], -"jf_vdf":[["impl UnwindSafe for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl UnwindSafe for VDFError",1,["jf_vdf::VDFError"]],["impl<F> UnwindSafe for MinRoot<F>
    where\n F: UnwindSafe,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> UnwindSafe for MinRootElement<F>
    where\n F: UnwindSafe,
    ",1,["jf_vdf::minroot::MinRootElement"]]], -"jf_vid":[["impl UnwindSafe for VidError",1,["jf_vid::VidError"]],["impl<'a, V> UnwindSafe for Statement<'a, V>
    where\n <V as VidScheme>::Commit: RefUnwindSafe,\n <V as VidScheme>::Common: RefUnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> UnwindSafe for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> UnwindSafe for Common<E, H>
    where\n <H as HasherDigest>::Bar: UnwindSafe,\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> UnwindSafe for Share<E, H>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <H as HasherDigest>::Bar: UnwindSafe + RefUnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe + RefUnwindSafe,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> UnwindSafe for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n T: UnwindSafe,\n H: UnwindSafe,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> UnwindSafe for LargeRangeProof<F>
    where\n F: UnwindSafe,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> UnwindSafe for SmallRangeProof<P>
    where\n P: UnwindSafe,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> UnwindSafe for VidDisperse<V>
    where\n <V as VidScheme>::Common: UnwindSafe,\n <V as VidScheme>::Commit: UnwindSafe,\n <V as VidScheme>::Share: UnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], -"jf_vrf":[["impl !UnwindSafe for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl UnwindSafe for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl UnwindSafe for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] +"jf_aead":[["impl UnwindSafe for AEADError",1,["jf_aead::AEADError"]],["impl UnwindSafe for Ciphertext",1,["jf_aead::Ciphertext"]],["impl UnwindSafe for EncKey",1,["jf_aead::EncKey"]],["impl UnwindSafe for KeyPair",1,["jf_aead::KeyPair"]]], +"jf_elgamal":[["impl UnwindSafe for ParameterError",1,["jf_elgamal::ParameterError"]],["impl<P> UnwindSafe for Ciphertext<P>
    where\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::Ciphertext"]],["impl<P> UnwindSafe for EncKey<P>
    where\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::EncKey"]],["impl<P> UnwindSafe for KeyPair<P>
    where\n <P as CurveConfig>::ScalarField: UnwindSafe,\n <P as CurveConfig>::BaseField: UnwindSafe,
    ",1,["jf_elgamal::KeyPair"]]], +"jf_merkle_tree":[["impl UnwindSafe for MerkleTreeError",1,["jf_merkle_tree::errors::MerkleTreeError"]],["impl UnwindSafe for HasherDigestAlgorithm",1,["jf_merkle_tree::hasher::HasherDigestAlgorithm"]],["impl UnwindSafe for Sha3Digest",1,["jf_merkle_tree::prelude::Sha3Digest"]],["impl UnwindSafe for Sha3Node",1,["jf_merkle_tree::prelude::Sha3Node"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for MerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::append_only::MerkleTree"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::light_weight::LightWeightMerkleTree"]],["impl<E, H, I, const ARITY: usize, T> UnwindSafe for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n H: UnwindSafe,\n T: RefUnwindSafe,\n I: RefUnwindSafe,\n E: RefUnwindSafe,
    ",1,["jf_merkle_tree::universal_merkle_tree::UniversalMerkleTree"]],["impl<E, H, const ARITY: usize, N, T> UnwindSafe for NMT<E, H, ARITY, N, T>",1,["jf_merkle_tree::namespaced_merkle_tree::NMT"]],["impl<E, I, T> UnwindSafe for MerkleNode<E, I, T>",1,["jf_merkle_tree::internal::MerkleNode"]],["impl<E, I, T, const ARITY: usize> UnwindSafe for MerkleProof<E, I, T, ARITY>",1,["jf_merkle_tree::internal::MerkleProof"]],["impl<F> UnwindSafe for Interval<F>
    where\n F: UnwindSafe,
    ",1,["jf_merkle_tree::examples::Interval"]],["impl<F> UnwindSafe for RescueHash<F>
    where\n F: UnwindSafe,
    ",1,["jf_merkle_tree::prelude::RescueHash"]],["impl<F, P, N> UnwindSafe for LookupResult<F, P, N>
    where\n F: UnwindSafe,\n P: UnwindSafe,\n N: UnwindSafe,
    ",1,["jf_merkle_tree::LookupResult"]],["impl<H> UnwindSafe for HasherNode<H>
    where\n <<H as OutputSizeUser>::OutputSize as ArrayLength<u8>>::ArrayType: UnwindSafe,
    ",1,["jf_merkle_tree::hasher::HasherNode"]]], +"jf_pcs":[["impl !UnwindSafe for PCSError",1,["jf_pcs::errors::PCSError"]],["impl !UnwindSafe for TranscriptError",1,["jf_pcs::transcript::errors::TranscriptError"]],["impl<E> UnwindSafe for MultilinearKzgBatchProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgBatchProof"]],["impl<E> UnwindSafe for MultilinearKzgPCS<E>
    where\n E: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgPCS"]],["impl<E> UnwindSafe for MultilinearKzgProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::MultilinearKzgProof"]],["impl<E> UnwindSafe for Commitment<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::structs::Commitment"]],["impl<E> UnwindSafe for MultilinearProverParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearProverParam"]],["impl<E> UnwindSafe for MultilinearUniversalParams<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearUniversalParams"]],["impl<E> UnwindSafe for MultilinearVerifierParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::multilinear_kzg::srs::MultilinearVerifierParam"]],["impl<E> UnwindSafe for UnivariateProverParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateProverParam"]],["impl<E> UnwindSafe for UnivariateUniversalParams<E>
    where\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateUniversalParams"]],["impl<E> UnwindSafe for UnivariateVerifierParam<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::srs::UnivariateVerifierParam"]],["impl<E> UnwindSafe for UnivariateKzgPCS<E>
    where\n E: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgPCS"]],["impl<E> UnwindSafe for UnivariateKzgProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_pcs::univariate_kzg::UnivariateKzgProof"]],["impl<F> UnwindSafe for IOPTranscript<F>
    where\n F: UnwindSafe,
    ",1,["jf_pcs::transcript::IOPTranscript"]]], +"jf_plonk":[["impl !UnwindSafe for PlonkError",1,["jf_plonk::errors::PlonkError"]],["impl UnwindSafe for SnarkError",1,["jf_plonk::errors::SnarkError"]],["impl UnwindSafe for SolidityTranscript",1,["jf_plonk::transcript::solidity::SolidityTranscript"]],["impl UnwindSafe for StandardTranscript",1,["jf_plonk::transcript::standard::StandardTranscript"]],["impl<E> !UnwindSafe for Instance<E>",1,["jf_plonk::proof_system::batch_arg::Instance"]],["impl<E> UnwindSafe for VerifyingKeyVar<E>
    where\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::VerifyingKeyVar"]],["impl<E> UnwindSafe for BatchArgument<E>
    where\n E: UnwindSafe,
    ",1,["jf_plonk::proof_system::batch_arg::BatchArgument"]],["impl<E> UnwindSafe for PlonkKzgSnark<E>
    where\n E: UnwindSafe,
    ",1,["jf_plonk::proof_system::snark::PlonkKzgSnark"]],["impl<E> UnwindSafe for BatchProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::BatchProof"]],["impl<E> UnwindSafe for PlookupProof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProof"]],["impl<E> UnwindSafe for PlookupProvingKey<E>
    where\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupProvingKey"]],["impl<E> UnwindSafe for PlookupVerifyingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupVerifyingKey"]],["impl<E> UnwindSafe for Proof<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::Proof"]],["impl<E> UnwindSafe for ProvingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProvingKey"]],["impl<E> UnwindSafe for VerifyingKey<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::VerifyingKey"]],["impl<F> UnwindSafe for BatchProofVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::circuit::plonk_verifier::structs::BatchProofVar"]],["impl<F> UnwindSafe for RescueTranscriptVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::circuit::transcript::RescueTranscriptVar"]],["impl<F> UnwindSafe for PlookupEvaluations<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::PlookupEvaluations"]],["impl<F> UnwindSafe for ProofEvaluations<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::proof_system::structs::ProofEvaluations"]],["impl<F> UnwindSafe for RescueTranscript<F>
    where\n F: UnwindSafe,
    ",1,["jf_plonk::transcript::rescue::RescueTranscript"]]], +"jf_relation":[["impl UnwindSafe for MergeableCircuitType",1,["jf_relation::constraint_system::MergeableCircuitType"]],["impl UnwindSafe for PlonkType",1,["jf_relation::constraint_system::PlonkType"]],["impl UnwindSafe for CircuitError",1,["jf_relation::CircuitError"]],["impl UnwindSafe for BoolVar",1,["jf_relation::constraint_system::BoolVar"]],["impl UnwindSafe for PointVariable",1,["jf_relation::gadgets::ecc::PointVariable"]],["impl UnwindSafe for AdditionGate",1,["jf_relation::gates::arithmetic::AdditionGate"]],["impl UnwindSafe for BoolGate",1,["jf_relation::gates::arithmetic::BoolGate"]],["impl UnwindSafe for CondSelectGate",1,["jf_relation::gates::arithmetic::CondSelectGate"]],["impl UnwindSafe for EqualityGate",1,["jf_relation::gates::arithmetic::EqualityGate"]],["impl UnwindSafe for FifthRootGate",1,["jf_relation::gates::arithmetic::FifthRootGate"]],["impl UnwindSafe for IoGate",1,["jf_relation::gates::arithmetic::IoGate"]],["impl UnwindSafe for LogicOrGate",1,["jf_relation::gates::logic::LogicOrGate"]],["impl UnwindSafe for LogicOrOutputGate",1,["jf_relation::gates::logic::LogicOrOutputGate"]],["impl UnwindSafe for MultiplicationGate",1,["jf_relation::gates::arithmetic::MultiplicationGate"]],["impl UnwindSafe for PaddingGate",1,["jf_relation::gates::PaddingGate"]],["impl UnwindSafe for SubtractionGate",1,["jf_relation::gates::arithmetic::SubtractionGate"]],["impl<E> UnwindSafe for EmulatedSWPointVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::EmulatedSWPointVariable"]],["impl<E> UnwindSafe for EmulatedTEPointVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::twisted_edwards::EmulatedTEPointVariable"]],["impl<E> UnwindSafe for EmulatedVariable<E>
    where\n E: UnwindSafe,
    ",1,["jf_relation::gadgets::emulated::EmulatedVariable"]],["impl<F> !UnwindSafe for PlonkCircuit<F>",1,["jf_relation::constraint_system::PlonkCircuit"]],["impl<F> UnwindSafe for SWPoint<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::emulated::short_weierstrass::SWPoint"]],["impl<F> UnwindSafe for TEPoint<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ecc::TEPoint"]],["impl<F> UnwindSafe for FpElem<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElem"]],["impl<F> UnwindSafe for FpElemVar<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gadgets::ultraplonk::mod_arith::FpElemVar"]],["impl<F> UnwindSafe for ConstantAdditionGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantAdditionGate"]],["impl<F> UnwindSafe for ConstantGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantGate"]],["impl<F> UnwindSafe for ConstantMultiplicationGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::ConstantMultiplicationGate"]],["impl<F> UnwindSafe for LinCombGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::LinCombGate"]],["impl<F> UnwindSafe for LookupGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::lookup::LookupGate"]],["impl<F> UnwindSafe for MulAddGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::MulAddGate"]],["impl<F> UnwindSafe for QuadPolyGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::arithmetic::QuadPolyGate"]],["impl<F> UnwindSafe for QuaternaryPointSelectXGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectXGate"]],["impl<F> UnwindSafe for QuaternaryPointSelectYGate<F>
    where\n F: UnwindSafe,
    ",1,["jf_relation::gates::ecc::QuaternaryPointSelectYGate"]],["impl<P> UnwindSafe for CurvePointXAdditionGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointXAdditionGate"]],["impl<P> UnwindSafe for CurvePointYAdditionGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::CurvePointYAdditionGate"]],["impl<P> UnwindSafe for EdwardsCurveEquationGate<P>
    where\n P: UnwindSafe,
    ",1,["jf_relation::gates::ecc::EdwardsCurveEquationGate"]]], +"jf_rescue":[["impl UnwindSafe for RescueError",1,["jf_rescue::RescueError"]],["impl<F> UnwindSafe for RescueCRHF<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::RescueCRHF"]],["impl<F> UnwindSafe for PRP<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::PRP"]],["impl<F> UnwindSafe for Permutation<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::Permutation"]],["impl<F> UnwindSafe for RescueMatrix<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::RescueMatrix"]],["impl<F> UnwindSafe for RescueVector<F>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::RescueVector"]],["impl<F, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> UnwindSafe for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::commitment::FixedLengthRescueCommitment"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::FixedLengthRescueCRHF"]],["impl<F, const INPUT_LEN: usize, const OUTPUT_LEN: usize> UnwindSafe for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::prf::RescuePRF"]],["impl<F, const OUTPUT_LEN: usize> UnwindSafe for VariableLengthRescueCRHF<F, OUTPUT_LEN>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::crhf::VariableLengthRescueCRHF"]],["impl<F, const RATE: usize> UnwindSafe for RescueSponge<F, RATE>
    where\n F: UnwindSafe,
    ",1,["jf_rescue::sponge::RescueSponge"]]], +"jf_signature":[["impl UnwindSafe for SignatureError",1,["jf_signature::SignatureError"]]], +"jf_utils":[["impl UnwindSafe for RSCodeError",1,["jf_utils::reed_solomon_code::RSCodeError"]],["impl UnwindSafe for CanonicalBytes",1,["jf_utils::serialize::CanonicalBytes"]]], +"jf_vdf":[["impl UnwindSafe for MinRootPP",1,["jf_vdf::minroot::MinRootPP"]],["impl UnwindSafe for VDFError",1,["jf_vdf::VDFError"]],["impl<F> UnwindSafe for MinRoot<F>
    where\n F: UnwindSafe,
    ",1,["jf_vdf::minroot::MinRoot"]],["impl<F> UnwindSafe for MinRootElement<F>
    where\n F: UnwindSafe,
    ",1,["jf_vdf::minroot::MinRootElement"]]], +"jf_vid":[["impl UnwindSafe for VidError",1,["jf_vid::VidError"]],["impl<'a, V> UnwindSafe for Statement<'a, V>
    where\n <V as VidScheme>::Commit: RefUnwindSafe,\n <V as VidScheme>::Common: RefUnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::payload_prover::Statement"]],["impl<E> UnwindSafe for PrecomputeData<E>
    where\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_vid::advz::precomputable::PrecomputeData"]],["impl<E, H> UnwindSafe for Common<E, H>
    where\n <H as HasherDigest>::Bar: UnwindSafe,\n <E as Pairing>::G1Affine: UnwindSafe,
    ",1,["jf_vid::advz::Common"]],["impl<E, H> UnwindSafe for Share<E, H>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <H as HasherDigest>::Bar: UnwindSafe + RefUnwindSafe,\n <E as Pairing>::ScalarField: UnwindSafe + RefUnwindSafe,
    ",1,["jf_vid::advz::Share"]],["impl<E, H, T> UnwindSafe for AdvzInternal<E, H, T>
    where\n <E as Pairing>::G1Affine: UnwindSafe,\n <E as Pairing>::G2Affine: UnwindSafe,\n T: UnwindSafe,\n H: UnwindSafe,
    ",1,["jf_vid::advz::AdvzInternal"]],["impl<F> UnwindSafe for LargeRangeProof<F>
    where\n F: UnwindSafe,
    ",1,["jf_vid::advz::payload_prover::LargeRangeProof"]],["impl<P> UnwindSafe for SmallRangeProof<P>
    where\n P: UnwindSafe,
    ",1,["jf_vid::advz::payload_prover::SmallRangeProof"]],["impl<V> UnwindSafe for VidDisperse<V>
    where\n <V as VidScheme>::Common: UnwindSafe,\n <V as VidScheme>::Commit: UnwindSafe,\n <V as VidScheme>::Share: UnwindSafe,\n V: ?Sized,
    ",1,["jf_vid::VidDisperse"]]], +"jf_vrf":[["impl !UnwindSafe for BLSVRFScheme",1,["jf_vrf::blsvrf::BLSVRFScheme"]],["impl UnwindSafe for BLSVRFCipherSuite",1,["jf_vrf::blsvrf::BLSVRFCipherSuite"]],["impl UnwindSafe for BLSVRFError",1,["jf_vrf::blsvrf::BLSVRFError"]]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/core/str/traits/trait.FromStr.js b/trait.impl/core/str/traits/trait.FromStr.js index 512264237..233f537ca 100644 --- a/trait.impl/core/str/traits/trait.FromStr.js +++ b/trait.impl/core/str/traits/trait.FromStr.js @@ -1,4 +1,4 @@ (function() {var implementors = { -"jf_merkle_tree":[["impl<H> FromStr for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_plonk":[["impl<E: Pairing> FromStr for BatchProof<E>"],["impl<E: Pairing> FromStr for Proof<E>"]] +"jf_merkle_tree":[["impl<H> FromStr for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_plonk":[["impl<E: Pairing> FromStr for BatchProof<E>"],["impl<E: Pairing> FromStr for Proof<E>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/jf_commitment/trait.CommitmentScheme.js b/trait.impl/jf_commitment/trait.CommitmentScheme.js index ade2b57b3..f80b1b53a 100644 --- a/trait.impl/jf_commitment/trait.CommitmentScheme.js +++ b/trait.impl/jf_commitment/trait.CommitmentScheme.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const INPUT_LEN_PLUS_ONE: usize> CommitmentScheme for FixedLengthRescueCommitment<F, INPUT_LEN, INPUT_LEN_PLUS_ONE>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/jf_crhf/trait.CRHF.js b/trait.impl/jf_crhf/trait.CRHF.js index d8d1dcb33..8f148f9ce 100644 --- a/trait.impl/jf_crhf/trait.CRHF.js +++ b/trait.impl/jf_crhf/trait.CRHF.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> CRHF for FixedLengthRescueCRHF<F, INPUT_LEN, OUTPUT_LEN>"],["impl<F: RescueParameter, const OUTPUT_LEN: usize> CRHF for VariableLengthRescueCRHF<F, OUTPUT_LEN>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/jf_prf/trait.PRF.js b/trait.impl/jf_prf/trait.PRF.js index 8608ee2b5..7c188f388 100644 --- a/trait.impl/jf_prf/trait.PRF.js +++ b/trait.impl/jf_prf/trait.PRF.js @@ -1,3 +1,3 @@ (function() {var implementors = { -"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"]] +"jf_rescue":[["impl<F: RescueParameter, const INPUT_LEN: usize, const OUTPUT_LEN: usize> PRF for RescuePRF<F, INPUT_LEN, OUTPUT_LEN>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde/de/trait.Deserialize.js b/trait.impl/serde/de/trait.Deserialize.js index 8d454ebc2..f983a7d3f 100644 --- a/trait.impl/serde/de/trait.Deserialize.js +++ b/trait.impl/serde/de/trait.Deserialize.js @@ -1,7 +1,7 @@ (function() {var implementors = { -"jf_aead":[["impl<'de> Deserialize<'de> for Ciphertext"],["impl<'de> Deserialize<'de> for EncKey"],["impl<'de> Deserialize<'de> for KeyPair"]], -"jf_merkle_tree":[["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, const ARITY: usize, N, T> Deserialize<'de> for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue + CanonicalSerialize + CanonicalDeserialize,\n N: Namespace,
    "],["impl<'de, E, I, T, const ARITY: usize> Deserialize<'de> for MerkleProof<E, I, T, ARITY>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, I, T: NodeValue> Deserialize<'de> for MerkleNode<E, I, T>
    where\n E: CanonicalSerialize + CanonicalDeserialize + Element,\n I: CanonicalSerialize + CanonicalDeserialize + Index,
    "],["impl<'de, H> Deserialize<'de> for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_plonk":[["impl<'de, E: Pairing> Deserialize<'de> for BatchProof<E>"],["impl<'de, E: Pairing> Deserialize<'de> for Proof<E>"]], -"jf_utils":[["impl<'de> Deserialize<'de> for CanonicalBytes"]], -"jf_vid":[["impl<'de, E> Deserialize<'de> for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<'de, E, H> Deserialize<'de> for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<'de, E, H> Deserialize<'de> for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,\n Output<H>: Serialize + for<'a> Deserialize<'a>,
    "],["impl<'de, F> Deserialize<'de> for LargeRangeProof<F>
    where\n F: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<'de, P> Deserialize<'de> for SmallRangeProof<P>
    where\n P: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<'de, V: VidScheme + ?Sized> Deserialize<'de> for VidDisperse<V>
    where\n V::Share: Serialize + for<'a> Deserialize<'a>,\n V::Common: Serialize + for<'a> Deserialize<'a>,\n V::Commit: Serialize + for<'a> Deserialize<'a>,
    "]] +"jf_aead":[["impl<'de> Deserialize<'de> for Ciphertext"],["impl<'de> Deserialize<'de> for EncKey"],["impl<'de> Deserialize<'de> for KeyPair"]], +"jf_merkle_tree":[["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, H, const ARITY: usize, N, T> Deserialize<'de> for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue + CanonicalSerialize + CanonicalDeserialize,\n N: Namespace,
    "],["impl<'de, E, I, T, const ARITY: usize> Deserialize<'de> for MerkleProof<E, I, T, ARITY>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<'de, E, I, T: NodeValue> Deserialize<'de> for MerkleNode<E, I, T>
    where\n E: CanonicalSerialize + CanonicalDeserialize + Element,\n I: CanonicalSerialize + CanonicalDeserialize + Index,
    "],["impl<'de, H> Deserialize<'de> for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_plonk":[["impl<'de, E: Pairing> Deserialize<'de> for BatchProof<E>"],["impl<'de, E: Pairing> Deserialize<'de> for Proof<E>"]], +"jf_utils":[["impl<'de> Deserialize<'de> for CanonicalBytes"]], +"jf_vid":[["impl<'de, E> Deserialize<'de> for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<'de, E, H> Deserialize<'de> for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<'de, E, H> Deserialize<'de> for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,\n Output<H>: Serialize + for<'a> Deserialize<'a>,
    "],["impl<'de, F> Deserialize<'de> for LargeRangeProof<F>
    where\n F: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<'de, P> Deserialize<'de> for SmallRangeProof<P>
    where\n P: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<'de, V: VidScheme + ?Sized> Deserialize<'de> for VidDisperse<V>
    where\n V::Share: Serialize + for<'a> Deserialize<'a>,\n V::Common: Serialize + for<'a> Deserialize<'a>,\n V::Commit: Serialize + for<'a> Deserialize<'a>,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/trait.impl/serde/ser/trait.Serialize.js b/trait.impl/serde/ser/trait.Serialize.js index 9bce6bb3a..c43164fe6 100644 --- a/trait.impl/serde/ser/trait.Serialize.js +++ b/trait.impl/serde/ser/trait.Serialize.js @@ -1,7 +1,7 @@ (function() {var implementors = { -"jf_aead":[["impl Serialize for Ciphertext"],["impl Serialize for EncKey"],["impl Serialize for KeyPair"]], -"jf_merkle_tree":[["impl<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> Serialize for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue + CanonicalSerialize + CanonicalDeserialize,\n N: Namespace,
    "],["impl<E, I, T, const ARITY: usize> Serialize for MerkleProof<E, I, T, ARITY>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, I, T: NodeValue> Serialize for MerkleNode<E, I, T>
    where\n E: CanonicalSerialize + CanonicalDeserialize + Element,\n I: CanonicalSerialize + CanonicalDeserialize + Index,
    "],["impl<H> Serialize for HasherNode<H>
    where\n H: Digest,
    "]], -"jf_plonk":[["impl<E: Pairing> Serialize for BatchProof<E>"],["impl<E: Pairing> Serialize for Proof<E>"]], -"jf_utils":[["impl Serialize for CanonicalBytes"]], -"jf_vid":[["impl<E> Serialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Serialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Serialize for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,\n Output<H>: Serialize + for<'a> Deserialize<'a>,
    "],["impl<F> Serialize for LargeRangeProof<F>
    where\n F: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<P> Serialize for SmallRangeProof<P>
    where\n P: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<V: VidScheme + ?Sized> Serialize for VidDisperse<V>
    where\n V::Share: Serialize + for<'a> Deserialize<'a>,\n V::Common: Serialize + for<'a> Deserialize<'a>,\n V::Commit: Serialize + for<'a> Deserialize<'a>,
    "]] +"jf_aead":[["impl Serialize for Ciphertext"],["impl Serialize for EncKey"],["impl Serialize for KeyPair"]], +"jf_merkle_tree":[["impl<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, H, const ARITY: usize, N, T> Serialize for NMT<E, H, ARITY, N, T>
    where\n H: DigestAlgorithm<E, u64, T> + BindNamespace<E, u64, T, N>,\n E: Element + Namespaced<Namespace = N> + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue + CanonicalSerialize + CanonicalDeserialize,\n N: Namespace,
    "],["impl<E, I, T, const ARITY: usize> Serialize for MerkleProof<E, I, T, ARITY>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,
    "],["impl<E, I, T: NodeValue> Serialize for MerkleNode<E, I, T>
    where\n E: CanonicalSerialize + CanonicalDeserialize + Element,\n I: CanonicalSerialize + CanonicalDeserialize + Index,
    "],["impl<H> Serialize for HasherNode<H>
    where\n H: Digest,
    "]], +"jf_plonk":[["impl<E: Pairing> Serialize for BatchProof<E>"],["impl<E: Pairing> Serialize for Proof<E>"]], +"jf_utils":[["impl Serialize for CanonicalBytes"]], +"jf_vid":[["impl<E> Serialize for PrecomputeData<E>
    where\n E: Pairing,
    "],["impl<E, H> Serialize for Common<E, H>
    where\n E: Pairing,\n H: HasherDigest,
    "],["impl<E, H> Serialize for Share<E, H>
    where\n E: Pairing,\n H: HasherDigest,\n Output<H>: Serialize + for<'a> Deserialize<'a>,
    "],["impl<F> Serialize for LargeRangeProof<F>
    where\n F: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<P> Serialize for SmallRangeProof<P>
    where\n P: CanonicalSerialize + CanonicalDeserialize,
    "],["impl<V: VidScheme + ?Sized> Serialize for VidDisperse<V>
    where\n V::Share: Serialize + for<'a> Deserialize<'a>,\n V::Common: Serialize + for<'a> Deserialize<'a>,\n V::Commit: Serialize + for<'a> Deserialize<'a>,
    "]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/type.impl/alloc/sync/struct.Arc.js b/type.impl/alloc/sync/struct.Arc.js index 999ab3056..2a099d4d6 100644 --- a/type.impl/alloc/sync/struct.Arc.js +++ b/type.impl/alloc/sync/struct.Arc.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_pcs":[["
    source§

    impl<T> Arc<T>
    where\n T: ?Sized,

    1.17.0 · source

    pub unsafe fn from_raw(ptr: *const T) -> Arc<T>

    Constructs an Arc<T> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to\nArc<U>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw(x_ptr);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    use std::sync::Arc;\n\nlet x: Arc<[u32]> = Arc::new([1, 2, 3]);\nlet x_ptr: *const [u32] = Arc::into_raw(x);\n\nunsafe {\n    let x: Arc<[u32; 3]> = Arc::from_raw(x_ptr.cast::<[u32; 3]>());\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.51.0 · source

    pub unsafe fn increment_strong_count(ptr: *const T)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    1.51.0 · source

    pub unsafe fn decrement_strong_count(ptr: *const T)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count(ptr);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T> Arc<T>

    1.0.0 · source

    pub fn new(data: T) -> Arc<T>

    Constructs a new Arc<T>.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);
    \n
    1.60.0 · source

    pub fn new_cyclic<F>(data_fn: F) -> Arc<T>
    where\n F: FnOnce(&Weak<T>) -> T,

    Constructs a new Arc<T> while giving you a Weak<T> to the allocation,\nto allow you to construct a T which holds a weak pointer to itself.

    \n

    Generally, a structure circularly referencing itself, either directly or\nindirectly, should not hold a strong reference to itself to prevent a memory leak.\nUsing this function, you get access to the weak pointer during the\ninitialization of T, before the Arc<T> is created, such that you can\nclone and store it inside the T.

    \n

    new_cyclic first allocates the managed allocation for the Arc<T>,\nthen calls your closure, giving it a Weak<T> to this allocation,\nand only afterwards completes the construction of the Arc<T> by placing\nthe T returned from your closure into the allocation.

    \n

    Since the new Arc<T> is not fully-constructed until Arc<T>::new_cyclic\nreturns, calling upgrade on the weak reference inside your closure will\nfail and result in a None value.

    \n
    §Panics
    \n

    If data_fn panics, the panic is propagated to the caller, and the\ntemporary Weak<T> is dropped normally.

    \n
    §Example
    \n
    use std::sync::{Arc, Weak};\n\nstruct Gadget {\n    me: Weak<Gadget>,\n}\n\nimpl Gadget {\n    /// Construct a reference counted Gadget.\n    fn new() -> Arc<Self> {\n        // `me` is a `Weak<Gadget>` pointing at the new allocation of the\n        // `Arc` we're constructing.\n        Arc::new_cyclic(|me| {\n            // Create the actual struct here.\n            Gadget { me: me.clone() }\n        })\n    }\n\n    /// Return a reference counted pointer to Self.\n    fn me(&self) -> Arc<Self> {\n        self.me.upgrade().unwrap()\n    }\n}
    \n
    source

    pub fn new_uninit() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::new_uninit();\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(data: T) -> Pin<Arc<T>>

    Constructs a new Pin<Arc<T>>. If T does not implement Unpin, then\ndata will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin(data: T) -> Result<Pin<Arc<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T>>, return an error if allocation fails.

    \n
    source

    pub fn try_new(data: T) -> Result<Arc<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T>, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\n\nlet five = Arc::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, returning an error\nif allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::try_new_uninit()?;\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, returning an error if allocation fails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.17.0 · source

    pub fn into_raw(this: Arc<T, A>) -> *const T

    Consumes the Arc, returning the wrapped pointer.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    source

    pub fn into_raw_with_allocator(this: Arc<T, A>) -> (*const T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Arc, returning the wrapped pointer and allocator.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw_in.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet (ptr, alloc) = Arc::into_raw_with_allocator(x);\nassert_eq!(unsafe { &*ptr }, \"hello\");\nlet x = unsafe { Arc::from_raw_in(ptr, alloc) };\nassert_eq!(&*x, \"hello\");
    \n
    1.45.0 · source

    pub fn as_ptr(this: &Arc<T, A>) -> *const T

    Provides a raw pointer to the data.

    \n

    The counts are not affected in any way and the Arc is not consumed. The pointer is valid for\nas long as there are strong counts in the Arc.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet y = Arc::clone(&x);\nlet x_ptr = Arc::as_ptr(&x);\nassert_eq!(x_ptr, Arc::as_ptr(&y));\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    source

    pub unsafe fn from_raw_in(ptr: *const T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs an Arc<T, A> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to Arc<U, A>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The raw pointer must point to a block of memory allocated by alloc

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw_in(x_ptr, System);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x: Arc<[u32], _> = Arc::new_in([1, 2, 3], System);\nlet x_ptr: *const [u32] = Arc::into_raw(x);\n\nunsafe {\n    let x: Arc<[u32; 3], _> = Arc::from_raw_in(x_ptr.cast::<[u32; 3]>(), System);\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.4.0 · source

    pub fn downgrade(this: &Arc<T, A>) -> Weak<T, A>
    where\n A: Clone,

    Creates a new Weak pointer to this allocation.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet weak_five = Arc::downgrade(&five);
    \n
    1.15.0 · source

    pub fn weak_count(this: &Arc<T, A>) -> usize

    Gets the number of Weak pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the weak count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _weak_five = Arc::downgrade(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` or `Weak` between threads.\nassert_eq!(1, Arc::weak_count(&five));
    \n
    1.15.0 · source

    pub fn strong_count(this: &Arc<T, A>) -> usize

    Gets the number of strong (Arc) pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the strong count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _also_five = Arc::clone(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` between threads.\nassert_eq!(2, Arc::strong_count(&five));
    \n
    source

    pub unsafe fn increment_strong_count_in(ptr: *const T, alloc: A)
    where\n A: Clone,

    🔬This is a nightly-only experimental API. (allocator_api)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method,, and ptr must point to a block of memory\nallocated by alloc.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    source

    pub unsafe fn decrement_strong_count_in(ptr: *const T, alloc: A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method, and ptr must point to a block of memory\nallocated by alloc. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count_in(ptr, System);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    1.17.0 · source

    pub fn ptr_eq(this: &Arc<T, A>, other: &Arc<T, A>) -> bool

    Returns true if the two Arcs point to the same allocation in a vein similar to\nptr::eq. This function ignores the metadata of dyn Trait pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet same_five = Arc::clone(&five);\nlet other_five = Arc::new(5);\n\nassert!(Arc::ptr_eq(&five, &same_five));\nassert!(!Arc::ptr_eq(&five, &other_five));
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    1.4.0 · source

    pub fn make_mut(this: &mut Arc<T, A>) -> &mut T

    Makes a mutable reference into the given Arc.

    \n

    If there are other Arc pointers to the same allocation, then make_mut will\nclone the inner value to a new allocation to ensure unique ownership. This is also\nreferred to as clone-on-write.

    \n

    However, if there are no other Arc pointers to this allocation, but some Weak\npointers, then the Weak pointers will be dissociated and the inner value will not\nbe cloned.

    \n

    See also get_mut, which will fail rather than cloning the inner value\nor dissociating Weak pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut data = Arc::new(5);\n\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\nlet mut other_data = Arc::clone(&data); // Won't clone inner data\n*Arc::make_mut(&mut data) += 1;         // Clones inner data\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\n*Arc::make_mut(&mut other_data) *= 2;   // Won't clone anything\n\n// Now `data` and `other_data` point to different allocations.\nassert_eq!(*data, 8);\nassert_eq!(*other_data, 12);
    \n

    Weak pointers will be dissociated:

    \n\n
    use std::sync::Arc;\n\nlet mut data = Arc::new(75);\nlet weak = Arc::downgrade(&data);\n\nassert!(75 == *data);\nassert!(75 == *weak.upgrade().unwrap());\n\n*Arc::make_mut(&mut data) += 1;\n\nassert!(76 == *data);\nassert!(weak.upgrade().is_none());
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n T: Clone,\n A: Allocator,

    1.76.0 · source

    pub fn unwrap_or_clone(this: Arc<T, A>) -> T

    If we have the only reference to T then unwrap it. Otherwise, clone T and return the\nclone.

    \n

    Assuming arc_t is of type Arc<T>, this function is functionally equivalent to\n(*arc_t).clone(), but will avoid cloning the inner value where possible.

    \n
    §Examples
    \n
    let inner = String::from(\"test\");\nlet ptr = inner.as_ptr();\n\nlet arc = Arc::new(inner);\nlet inner = Arc::unwrap_or_clone(arc);\n// The inner value was not cloned\nassert!(ptr::eq(ptr, inner.as_ptr()));\n\nlet arc = Arc::new(inner);\nlet arc2 = arc.clone();\nlet inner = Arc::unwrap_or_clone(arc);\n// Because there were 2 references, we had to clone the inner value.\nassert!(!ptr::eq(ptr, inner.as_ptr()));\n// `arc2` is the last reference, so when we unwrap it we get back\n// the original `String`.\nlet inner = Arc::unwrap_or_clone(arc2);\nassert!(ptr::eq(ptr, inner.as_ptr()));
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.4.0 · source

    pub fn get_mut(this: &mut Arc<T, A>) -> Option<&mut T>

    Returns a mutable reference into the given Arc, if there are\nno other Arc or Weak pointers to the same allocation.

    \n

    Returns None otherwise, because it is not safe to\nmutate a shared value.

    \n

    See also make_mut, which will clone\nthe inner value when there are other Arc pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut x = Arc::new(3);\n*Arc::get_mut(&mut x).unwrap() = 4;\nassert_eq!(*x, 4);\n\nlet _y = Arc::clone(&x);\nassert!(Arc::get_mut(&mut x).is_none());
    \n
    source

    pub unsafe fn get_mut_unchecked(this: &mut Arc<T, A>) -> &mut T

    🔬This is a nightly-only experimental API. (get_mut_unchecked)

    Returns a mutable reference into the given Arc,\nwithout any check.

    \n

    See also get_mut, which is safe and does appropriate checks.

    \n
    §Safety
    \n

    If any other Arc or Weak pointers to the same allocation exist, then\nthey must not be dereferenced or have active borrows for the duration\nof the returned borrow, and their inner type must be exactly the same as the\ninner type of this Rc (including lifetimes). This is trivially the case if no\nsuch pointers exist, for example immediately after Arc::new.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut x = Arc::new(String::new());\nunsafe {\n    Arc::get_mut_unchecked(&mut x).push_str(\"foo\")\n}\nassert_eq!(*x, \"foo\");
    \n

    Other Arc pointers to the same allocation must be to the same type.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<str> = Arc::from(\"Hello, world!\");\nlet mut y: Arc<[u8]> = x.clone().into();\nunsafe {\n    // this is Undefined Behavior, because x's inner type is str, not [u8]\n    Arc::get_mut_unchecked(&mut y).fill(0xff); // 0xff is invalid in UTF-8\n}\nprintln!(\"{}\", &*x); // Invalid UTF-8 in a str
    \n

    Other Arc pointers to the same allocation must be to the exact same type, including lifetimes.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<&str> = Arc::new(\"Hello, world!\");\n{\n    let s = String::from(\"Oh, no!\");\n    let mut y: Arc<&str> = x.clone().into();\n    unsafe {\n        // this is Undefined Behavior, because x's inner type\n        // is &'long str, not &'short str\n        *Arc::get_mut_unchecked(&mut y) = &s;\n    }\n}\nprintln!(\"{}\", &*x); // Use-after-free
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,

    source

    pub fn allocator(this: &Arc<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Arc::allocator(&a) instead of a.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    source

    pub fn new_in(data: T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T> in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn pin_in(data: T, alloc: A) -> Pin<Arc<T, A>>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator. If T does not implement Unpin,\nthen data will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin_in(data: T, alloc: A) -> Result<Pin<Arc<T, A>>, AllocError>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator, return an error if allocation\nfails.

    \n
    source

    pub fn try_new_in(data: T, alloc: A) -> Result<Arc<T, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T, A> in the provided allocator, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::try_new_in(5, System)?;
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, in the provided allocator, returning an\nerror if allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator, returning an error if allocation\nfails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    1.4.0 · source

    pub fn try_unwrap(this: Arc<T, A>) -> Result<T, Arc<T, A>>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, an Err is returned with the same Arc that was\npassed in.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    It is strongly recommended to use Arc::into_inner instead if you don’t\nwant to keep the Arc in the Err case.\nImmediately dropping the Err payload, like in the expression\nArc::try_unwrap(this).ok(), can still cause the strong count to\ndrop to zero and the inner value of the Arc to be dropped:\nFor instance if two threads each execute this expression in parallel, then\nthere is a race condition. The threads could first both check whether they\nhave the last clone of their Arc via Arc::try_unwrap, and then\nboth drop their Arc in the call to ok,\ntaking the strong count from two down to zero.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nassert_eq!(Arc::try_unwrap(x), Ok(3));\n\nlet x = Arc::new(4);\nlet _y = Arc::clone(&x);\nassert_eq!(*Arc::try_unwrap(x).unwrap_err(), 4);
    \n
    1.70.0 · source

    pub fn into_inner(this: Arc<T, A>) -> Option<T>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, None is returned and the Arc is dropped.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    If Arc::into_inner is called on every clone of this Arc,\nit is guaranteed that exactly one of the calls returns the inner value.\nThis means in particular that the inner value is not dropped.

    \n

    Arc::try_unwrap is conceptually similar to Arc::into_inner, but it\nis meant for different use-cases. If used as a direct replacement\nfor Arc::into_inner anyway, such as with the expression\nArc::try_unwrap(this).ok(), then it does\nnot give the same guarantee as described in the previous paragraph.\nFor more information, see the examples below and read the documentation\nof Arc::try_unwrap.

    \n
    §Examples
    \n

    Minimal example demonstrating the guarantee that Arc::into_inner gives.

    \n\n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nlet y = Arc::clone(&x);\n\n// Two threads calling `Arc::into_inner` on both clones of an `Arc`:\nlet x_thread = std::thread::spawn(|| Arc::into_inner(x));\nlet y_thread = std::thread::spawn(|| Arc::into_inner(y));\n\nlet x_inner_value = x_thread.join().unwrap();\nlet y_inner_value = y_thread.join().unwrap();\n\n// One of the threads is guaranteed to receive the inner value:\nassert!(matches!(\n    (x_inner_value, y_inner_value),\n    (None, Some(3)) | (Some(3), None)\n));\n// The result could also be `(None, None)` if the threads called\n// `Arc::try_unwrap(x).ok()` and `Arc::try_unwrap(y).ok()` instead.
    \n

    A more practical example demonstrating the need for Arc::into_inner:

    \n\n
    use std::sync::Arc;\n\n// Definition of a simple singly linked list using `Arc`:\n#[derive(Clone)]\nstruct LinkedList<T>(Option<Arc<Node<T>>>);\nstruct Node<T>(T, Option<Arc<Node<T>>>);\n\n// Dropping a long `LinkedList<T>` relying on the destructor of `Arc`\n// can cause a stack overflow. To prevent this, we can provide a\n// manual `Drop` implementation that does the destruction in a loop:\nimpl<T> Drop for LinkedList<T> {\n    fn drop(&mut self) {\n        let mut link = self.0.take();\n        while let Some(arc_node) = link.take() {\n            if let Some(Node(_value, next)) = Arc::into_inner(arc_node) {\n                link = next;\n            }\n        }\n    }\n}\n\n// Implementation of `new` and `push` omitted\nimpl<T> LinkedList<T> {\n    /* ... */\n}\n\n// The following code could have still caused a stack overflow\n// despite the manual `Drop` impl if that `Drop` impl had used\n// `Arc::try_unwrap(arc).ok()` instead of `Arc::into_inner(arc)`.\n\n// Create a long list and clone it\nlet mut x = LinkedList::new();\nlet size = 100000;\nfor i in 0..size {\n    x.push(i); // Adds i to the front of x\n}\nlet y = x.clone();\n\n// Drop the clones in parallel\nlet x_thread = std::thread::spawn(|| drop(x));\nlet y_thread = std::thread::spawn(|| drop(y));\nx_thread.join().unwrap();\ny_thread.join().unwrap();
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    1.64.0 · source§

    impl<T> AsFd for Arc<T>
    where\n T: AsFd + ?Sized,

    This impl allows implementing traits that require AsFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\n\ntrait MyTrait: AsFd {}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","jf_pcs::multilinear_kzg::MLE"],["
    1.63.0 · source§

    impl<T> AsRawFd for Arc<T>
    where\n T: AsRawFd,

    This impl allows implementing traits that require AsRawFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\ntrait MyTrait: AsRawFd {\n}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","jf_pcs::multilinear_kzg::MLE"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Borrow<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> CanonicalDeserialize for Arc<T>
    where\n T: CanonicalDeserialize + ToOwned + Sync + Send,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Arc<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> CanonicalSerialize for Arc<T>
    where\n T: CanonicalSerialize + ToOwned,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Clone for Arc<T, A>
    where\n A: Allocator + Clone,\n T: ?Sized,

    source§

    fn clone(&self) -> Arc<T, A>

    Makes a clone of the Arc pointer.

    \n

    This creates another pointer to the same allocation, increasing the\nstrong reference count.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet _ = Arc::clone(&five);
    \n
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Debug for Arc<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T> Default for Arc<T>
    where\n T: Default,

    source§

    fn default() -> Arc<T>

    Creates a new Arc<T>, with the Default value for T.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x: Arc<i32> = Default::default();\nassert_eq!(*x, 0);
    \n
    ","Default","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Deref for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<'de, T> Deserialize<'de> for Arc<T>
    where\n Box<T>: Deserialize<'de>,\n T: ?Sized,

    This impl requires the "rc" Cargo feature of Serde.

    \n

    Deserializing a data structure containing Arc will not attempt to\ndeduplicate Arc references to the same data. Every deserialized Arc\nwill end up with a strong count of 1.

    \n
    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Arc<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Display for Arc<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Drop for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Drops the Arc.

    \n

    This will decrement the strong reference count. If the strong reference\ncount reaches zero then the only other references (if any) are\nWeak, so we drop the inner value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nstruct Foo;\n\nimpl Drop for Foo {\n    fn drop(&mut self) {\n        println!(\"dropped!\");\n    }\n}\n\nlet foo  = Arc::new(Foo);\nlet foo2 = Arc::clone(&foo);\n\ndrop(foo);    // Doesn't print anything\ndrop(foo2);   // Prints \"dropped!\"
    \n
    ","Drop","jf_pcs::multilinear_kzg::MLE"],["
    1.52.0 · source§

    impl<T> Error for Arc<T>
    where\n T: Error + ?Sized,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'a>(&'a self, req: &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
    ","Error","jf_pcs::multilinear_kzg::MLE"],["
    1.21.0 · source§

    impl<T, A> From<Box<T, A>> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn from(v: Box<T, A>) -> Arc<T, A>

    Move a boxed object to a new, reference-counted allocation.

    \n
    §Example
    \n
    let unique: Box<str> = Box::from(\"eggplant\");\nlet shared: Arc<str> = Arc::from(unique);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","jf_pcs::multilinear_kzg::MLE"],["
    1.45.0 · source§

    impl<'a, B> From<Cow<'a, B>> for Arc<B>
    where\n B: ToOwned + ?Sized,\n Arc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

    source§

    fn from(cow: Cow<'a, B>) -> Arc<B>

    Create an atomically reference-counted pointer from\na clone-on-write pointer by copying its content.

    \n
    §Example
    \n
    let cow: Cow<'_, str> = Cow::Borrowed(\"eggplant\");\nlet shared: Arc<str> = Arc::from(cow);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","jf_pcs::multilinear_kzg::MLE"],["
    1.6.0 · source§

    impl<T> From<T> for Arc<T>

    source§

    fn from(t: T) -> Arc<T>

    Converts a T into an Arc<T>

    \n

    The conversion moves the value into a\nnewly allocated Arc. It is equivalent to\ncalling Arc::new(t).

    \n
    §Example
    \n
    let x = 5;\nlet arc = Arc::new(5);\n\nassert_eq!(Arc::from(x), arc);
    \n
    ","From","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Hash for Arc<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    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","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Ord for Arc<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Arc<T, A>) -> Ordering

    Comparison for two Arcs.

    \n

    The two are compared by calling cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Ordering::Less, five.cmp(&Arc::new(6)));
    \n
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Arc<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Arc<T, A>) -> bool

    Equality for two Arcs.

    \n

    Two Arcs are equal if their inner values are equal, even if they are\nstored in different allocation.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same allocation are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five == Arc::new(5));
    \n
    source§

    fn ne(&self, other: &Arc<T, A>) -> bool

    Inequality for two Arcs.

    \n

    Two Arcs are not equal if their inner values are not equal.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same value are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five != Arc::new(6));
    \n
    ","PartialEq","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Arc<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Arc<T, A>) -> Option<Ordering>

    Partial comparison for two Arcs.

    \n

    The two are compared by calling partial_cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Some(Ordering::Less), five.partial_cmp(&Arc::new(6)));
    \n
    source§

    fn lt(&self, other: &Arc<T, A>) -> bool

    Less-than comparison for two Arcs.

    \n

    The two are compared by calling < on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five < Arc::new(6));
    \n
    source§

    fn le(&self, other: &Arc<T, A>) -> bool

    ‘Less than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling <= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five <= Arc::new(5));
    \n
    source§

    fn gt(&self, other: &Arc<T, A>) -> bool

    Greater-than comparison for two Arcs.

    \n

    The two are compared by calling > on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five > Arc::new(4));
    \n
    source§

    fn ge(&self, other: &Arc<T, A>) -> bool

    ‘Greater than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling >= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five >= Arc::new(5));
    \n
    ","PartialOrd","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Pointer for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T> Serialize for Arc<T>
    where\n T: Serialize + ?Sized,

    This impl requires the "rc" Cargo feature of Serde.

    \n

    Serializing a data structure containing Arc will serialize a copy of\nthe contents of the Arc each time the Arc is referenced within the\ndata structure. Serialization will not attempt to deduplicate these\nrepeated data.

    \n
    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","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> Valid for Arc<T>
    where\n T: Valid + Sync + Send,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Arc<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Arc<T>: 'a,

    ","Valid","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, U, A> CoerceUnsized<Arc<U, A>> for Arc<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> DerefPure for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, U> DispatchFromDyn<Arc<U>> for Arc<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Eq for Arc<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Send for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Send,

    ","Send","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Sync for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Sync,

    ","Sync","jf_pcs::multilinear_kzg::MLE"],["
    1.33.0 · source§

    impl<T, A> Unpin for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","jf_pcs::multilinear_kzg::MLE"],["
    1.9.0 · source§

    impl<T, A> UnwindSafe for Arc<T, A>
    where\n T: RefUnwindSafe + ?Sized,\n A: Allocator + UnwindSafe,

    ","UnwindSafe","jf_pcs::multilinear_kzg::MLE"]] +"jf_pcs":[["
    source§

    impl<T> Arc<T>
    where\n T: ?Sized,

    1.17.0 · source

    pub unsafe fn from_raw(ptr: *const T) -> Arc<T>

    Constructs an Arc<T> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to\nArc<U>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw(x_ptr);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    use std::sync::Arc;\n\nlet x: Arc<[u32]> = Arc::new([1, 2, 3]);\nlet x_ptr: *const [u32] = Arc::into_raw(x);\n\nunsafe {\n    let x: Arc<[u32; 3]> = Arc::from_raw(x_ptr.cast::<[u32; 3]>());\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.51.0 · source

    pub unsafe fn increment_strong_count(ptr: *const T)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    1.51.0 · source

    pub unsafe fn decrement_strong_count(ptr: *const T)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count(ptr);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw(ptr);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count(ptr);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T> Arc<T>

    1.0.0 · source

    pub fn new(data: T) -> Arc<T>

    Constructs a new Arc<T>.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);
    \n
    1.60.0 · source

    pub fn new_cyclic<F>(data_fn: F) -> Arc<T>
    where\n F: FnOnce(&Weak<T>) -> T,

    Constructs a new Arc<T> while giving you a Weak<T> to the allocation,\nto allow you to construct a T which holds a weak pointer to itself.

    \n

    Generally, a structure circularly referencing itself, either directly or\nindirectly, should not hold a strong reference to itself to prevent a memory leak.\nUsing this function, you get access to the weak pointer during the\ninitialization of T, before the Arc<T> is created, such that you can\nclone and store it inside the T.

    \n

    new_cyclic first allocates the managed allocation for the Arc<T>,\nthen calls your closure, giving it a Weak<T> to this allocation,\nand only afterwards completes the construction of the Arc<T> by placing\nthe T returned from your closure into the allocation.

    \n

    Since the new Arc<T> is not fully-constructed until Arc<T>::new_cyclic\nreturns, calling upgrade on the weak reference inside your closure will\nfail and result in a None value.

    \n
    §Panics
    \n

    If data_fn panics, the panic is propagated to the caller, and the\ntemporary Weak<T> is dropped normally.

    \n
    §Example
    \n
    use std::sync::{Arc, Weak};\n\nstruct Gadget {\n    me: Weak<Gadget>,\n}\n\nimpl Gadget {\n    /// Construct a reference counted Gadget.\n    fn new() -> Arc<Self> {\n        // `me` is a `Weak<Gadget>` pointing at the new allocation of the\n        // `Arc` we're constructing.\n        Arc::new_cyclic(|me| {\n            // Create the actual struct here.\n            Gadget { me: me.clone() }\n        })\n    }\n\n    /// Return a reference counted pointer to Self.\n    fn me(&self) -> Arc<Self> {\n        self.me.upgrade().unwrap()\n    }\n}
    \n
    source

    pub fn new_uninit() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::new_uninit();\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed() -> Arc<MaybeUninit<T>>

    🔬This is a nightly-only experimental API. (new_uninit)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::new_zeroed();\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    1.33.0 · source

    pub fn pin(data: T) -> Pin<Arc<T>>

    Constructs a new Pin<Arc<T>>. If T does not implement Unpin, then\ndata will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin(data: T) -> Result<Pin<Arc<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T>>, return an error if allocation fails.

    \n
    source

    pub fn try_new(data: T) -> Result<Arc<T>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T>, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\n\nlet five = Arc::try_new(5)?;
    \n
    source

    pub fn try_new_uninit() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, returning an error\nif allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut five = Arc::<u32>::try_new_uninit()?;\n\n// Deferred initialization:\nArc::get_mut(&mut five).unwrap().write(5);\n\nlet five = unsafe { five.assume_init() };\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed() -> Result<Arc<MaybeUninit<T>>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, returning an error if allocation fails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\n\nlet zero = Arc::<u32>::try_new_zeroed()?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source

    pub fn allocator(this: &Arc<T, A>) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n

    Note: this is an associated function, which means that you have\nto call it as Arc::allocator(&a) instead of a.allocator(). This\nis so that there is no conflict with a method on the inner type.

    \n
    1.17.0 · source

    pub fn into_raw(this: Arc<T, A>) -> *const T

    Consumes the Arc, returning the wrapped pointer.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet x_ptr = Arc::into_raw(x);\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    source

    pub fn into_raw_with_allocator(this: Arc<T, A>) -> (*const T, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Consumes the Arc, returning the wrapped pointer and allocator.

    \n

    To avoid a memory leak the pointer must be converted back to an Arc using\nArc::from_raw_in.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet (ptr, alloc) = Arc::into_raw_with_allocator(x);\nassert_eq!(unsafe { &*ptr }, \"hello\");\nlet x = unsafe { Arc::from_raw_in(ptr, alloc) };\nassert_eq!(&*x, \"hello\");
    \n
    1.45.0 · source

    pub fn as_ptr(this: &Arc<T, A>) -> *const T

    Provides a raw pointer to the data.

    \n

    The counts are not affected in any way and the Arc is not consumed. The pointer is valid for\nas long as there are strong counts in the Arc.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(\"hello\".to_owned());\nlet y = Arc::clone(&x);\nlet x_ptr = Arc::as_ptr(&x);\nassert_eq!(x_ptr, Arc::as_ptr(&y));\nassert_eq!(unsafe { &*x_ptr }, \"hello\");
    \n
    source

    pub unsafe fn from_raw_in(ptr: *const T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs an Arc<T, A> from a raw pointer.

    \n

    The raw pointer must have been previously returned by a call to Arc<U, A>::into_raw with the following requirements:

    \n
      \n
    • If U is sized, it must have the same size and alignment as T. This\nis trivially true if U is T.
    • \n
    • If U is unsized, its data pointer must have the same size and\nalignment as T. This is trivially true if Arc<U> was constructed\nthrough Arc<T> and then converted to Arc<U> through an unsized\ncoercion.
    • \n
    \n

    Note that if U or U’s data pointer is not T but has the same size\nand alignment, this is basically like transmuting references of\ndifferent types. See mem::transmute for more information\non what restrictions apply in this case.

    \n

    The raw pointer must point to a block of memory allocated by alloc

    \n

    The user of from_raw has to make sure a specific value of T is only\ndropped once.

    \n

    This function is unsafe because improper use may lead to memory unsafety,\neven if the returned Arc<T> is never accessed.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x = Arc::new_in(\"hello\".to_owned(), System);\nlet x_ptr = Arc::into_raw(x);\n\nunsafe {\n    // Convert back to an `Arc` to prevent leak.\n    let x = Arc::from_raw_in(x_ptr, System);\n    assert_eq!(&*x, \"hello\");\n\n    // Further calls to `Arc::from_raw(x_ptr)` would be memory-unsafe.\n}\n\n// The memory was freed when `x` went out of scope above, so `x_ptr` is now dangling!
    \n

    Convert a slice back into its original array:

    \n\n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet x: Arc<[u32], _> = Arc::new_in([1, 2, 3], System);\nlet x_ptr: *const [u32] = Arc::into_raw(x);\n\nunsafe {\n    let x: Arc<[u32; 3], _> = Arc::from_raw_in(x_ptr.cast::<[u32; 3]>(), System);\n    assert_eq!(&*x, &[1, 2, 3]);\n}
    \n
    1.4.0 · source

    pub fn downgrade(this: &Arc<T, A>) -> Weak<T, A>
    where\n A: Clone,

    Creates a new Weak pointer to this allocation.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet weak_five = Arc::downgrade(&five);
    \n
    1.15.0 · source

    pub fn weak_count(this: &Arc<T, A>) -> usize

    Gets the number of Weak pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the weak count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _weak_five = Arc::downgrade(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` or `Weak` between threads.\nassert_eq!(1, Arc::weak_count(&five));
    \n
    1.15.0 · source

    pub fn strong_count(this: &Arc<T, A>) -> usize

    Gets the number of strong (Arc) pointers to this allocation.

    \n
    §Safety
    \n

    This method by itself is safe, but using it correctly requires extra care.\nAnother thread can change the strong count at any time,\nincluding potentially between calling this method and acting on the result.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet _also_five = Arc::clone(&five);\n\n// This assertion is deterministic because we haven't shared\n// the `Arc` between threads.\nassert_eq!(2, Arc::strong_count(&five));
    \n
    source

    pub unsafe fn increment_strong_count_in(ptr: *const T, alloc: A)
    where\n A: Clone,

    🔬This is a nightly-only experimental API. (allocator_api)

    Increments the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, and the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) for the duration of this method,, and ptr must point to a block of memory\nallocated by alloc.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // This assertion is deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n}
    \n
    source

    pub unsafe fn decrement_strong_count_in(ptr: *const T, alloc: A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decrements the strong reference count on the Arc<T> associated with the\nprovided pointer by one.

    \n
    §Safety
    \n

    The pointer must have been obtained through Arc::into_raw, the\nassociated Arc instance must be valid (i.e. the strong count must be at\nleast 1) when invoking this method, and ptr must point to a block of memory\nallocated by alloc. This method can be used to release the final\nArc and backing storage, but should not be called after the final Arc has been\nreleased.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);\n\nunsafe {\n    let ptr = Arc::into_raw(five);\n    Arc::increment_strong_count_in(ptr, System);\n\n    // Those assertions are deterministic because we haven't shared\n    // the `Arc` between threads.\n    let five = Arc::from_raw_in(ptr, System);\n    assert_eq!(2, Arc::strong_count(&five));\n    Arc::decrement_strong_count_in(ptr, System);\n    assert_eq!(1, Arc::strong_count(&five));\n}
    \n
    1.17.0 · source

    pub fn ptr_eq(this: &Arc<T, A>, other: &Arc<T, A>) -> bool

    Returns true if the two Arcs point to the same allocation in a vein similar to\nptr::eq. This function ignores the metadata of dyn Trait pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\nlet same_five = Arc::clone(&five);\nlet other_five = Arc::new(5);\n\nassert!(Arc::ptr_eq(&five, &same_five));\nassert!(!Arc::ptr_eq(&five, &other_five));
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n T: CloneToUninit + ?Sized,\n A: Allocator + Clone,

    1.4.0 · source

    pub fn make_mut(this: &mut Arc<T, A>) -> &mut T

    Makes a mutable reference into the given Arc.

    \n

    If there are other Arc pointers to the same allocation, then make_mut will\nclone the inner value to a new allocation to ensure unique ownership. This is also\nreferred to as clone-on-write.

    \n

    However, if there are no other Arc pointers to this allocation, but some Weak\npointers, then the Weak pointers will be dissociated and the inner value will not\nbe cloned.

    \n

    See also get_mut, which will fail rather than cloning the inner value\nor dissociating Weak pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut data = Arc::new(5);\n\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\nlet mut other_data = Arc::clone(&data); // Won't clone inner data\n*Arc::make_mut(&mut data) += 1;         // Clones inner data\n*Arc::make_mut(&mut data) += 1;         // Won't clone anything\n*Arc::make_mut(&mut other_data) *= 2;   // Won't clone anything\n\n// Now `data` and `other_data` point to different allocations.\nassert_eq!(*data, 8);\nassert_eq!(*other_data, 12);
    \n

    Weak pointers will be dissociated:

    \n\n
    use std::sync::Arc;\n\nlet mut data = Arc::new(75);\nlet weak = Arc::downgrade(&data);\n\nassert!(75 == *data);\nassert!(75 == *weak.upgrade().unwrap());\n\n*Arc::make_mut(&mut data) += 1;\n\nassert!(76 == *data);\nassert!(weak.upgrade().is_none());
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n T: Clone,\n A: Allocator,

    1.76.0 · source

    pub fn unwrap_or_clone(this: Arc<T, A>) -> T

    If we have the only reference to T then unwrap it. Otherwise, clone T and return the\nclone.

    \n

    Assuming arc_t is of type Arc<T>, this function is functionally equivalent to\n(*arc_t).clone(), but will avoid cloning the inner value where possible.

    \n
    §Examples
    \n
    let inner = String::from(\"test\");\nlet ptr = inner.as_ptr();\n\nlet arc = Arc::new(inner);\nlet inner = Arc::unwrap_or_clone(arc);\n// The inner value was not cloned\nassert!(ptr::eq(ptr, inner.as_ptr()));\n\nlet arc = Arc::new(inner);\nlet arc2 = arc.clone();\nlet inner = Arc::unwrap_or_clone(arc);\n// Because there were 2 references, we had to clone the inner value.\nassert!(!ptr::eq(ptr, inner.as_ptr()));\n// `arc2` is the last reference, so when we unwrap it we get back\n// the original `String`.\nlet inner = Arc::unwrap_or_clone(arc2);\nassert!(ptr::eq(ptr, inner.as_ptr()));
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    1.4.0 · source

    pub fn get_mut(this: &mut Arc<T, A>) -> Option<&mut T>

    Returns a mutable reference into the given Arc, if there are\nno other Arc or Weak pointers to the same allocation.

    \n

    Returns None otherwise, because it is not safe to\nmutate a shared value.

    \n

    See also make_mut, which will clone\nthe inner value when there are other Arc pointers.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet mut x = Arc::new(3);\n*Arc::get_mut(&mut x).unwrap() = 4;\nassert_eq!(*x, 4);\n\nlet _y = Arc::clone(&x);\nassert!(Arc::get_mut(&mut x).is_none());
    \n
    source

    pub unsafe fn get_mut_unchecked(this: &mut Arc<T, A>) -> &mut T

    🔬This is a nightly-only experimental API. (get_mut_unchecked)

    Returns a mutable reference into the given Arc,\nwithout any check.

    \n

    See also get_mut, which is safe and does appropriate checks.

    \n
    §Safety
    \n

    If any other Arc or Weak pointers to the same allocation exist, then\nthey must not be dereferenced or have active borrows for the duration\nof the returned borrow, and their inner type must be exactly the same as the\ninner type of this Rc (including lifetimes). This is trivially the case if no\nsuch pointers exist, for example immediately after Arc::new.

    \n
    §Examples
    \n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet mut x = Arc::new(String::new());\nunsafe {\n    Arc::get_mut_unchecked(&mut x).push_str(\"foo\")\n}\nassert_eq!(*x, \"foo\");
    \n

    Other Arc pointers to the same allocation must be to the same type.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<str> = Arc::from(\"Hello, world!\");\nlet mut y: Arc<[u8]> = x.clone().into();\nunsafe {\n    // this is Undefined Behavior, because x's inner type is str, not [u8]\n    Arc::get_mut_unchecked(&mut y).fill(0xff); // 0xff is invalid in UTF-8\n}\nprintln!(\"{}\", &*x); // Invalid UTF-8 in a str
    \n

    Other Arc pointers to the same allocation must be to the exact same type, including lifetimes.

    \n\n
    #![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\n\nlet x: Arc<&str> = Arc::new(\"Hello, world!\");\n{\n    let s = String::from(\"Oh, no!\");\n    let mut y: Arc<&str> = x.clone().into();\n    unsafe {\n        // this is Undefined Behavior, because x's inner type\n        // is &'long str, not &'short str\n        *Arc::get_mut_unchecked(&mut y) = &s;\n    }\n}\nprintln!(\"{}\", &*x); // Use-after-free
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> Arc<T, A>
    where\n A: Allocator,

    source

    pub fn new_in(data: T, alloc: A) -> Arc<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T> in the provided allocator.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::new_in(5, System);
    \n
    source

    pub fn new_uninit_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents in the provided allocator.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(get_mut_unchecked)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::new_uninit_in(System);\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5)
    \n
    source

    pub fn new_zeroed_in(alloc: A) -> Arc<MaybeUninit<T>, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit)]\n#![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::new_zeroed_in(System);\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0)
    \n
    source

    pub fn pin_in(data: T, alloc: A) -> Pin<Arc<T, A>>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator. If T does not implement Unpin,\nthen data will be pinned in memory and unable to be moved.

    \n
    source

    pub fn try_pin_in(data: T, alloc: A) -> Result<Pin<Arc<T, A>>, AllocError>
    where\n A: 'static,

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Pin<Arc<T, A>> in the provided allocator, return an error if allocation\nfails.

    \n
    source

    pub fn try_new_in(data: T, alloc: A) -> Result<Arc<T, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc<T, A> in the provided allocator, returning an error if allocation fails.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet five = Arc::try_new_in(5, System)?;
    \n
    source

    pub fn try_new_uninit_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, in the provided allocator, returning an\nerror if allocation fails.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n#![feature(get_mut_unchecked)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet mut five = Arc::<u32, _>::try_new_uninit_in(System)?;\n\nlet five = unsafe {\n    // Deferred initialization:\n    Arc::get_mut_unchecked(&mut five).as_mut_ptr().write(5);\n\n    five.assume_init()\n};\n\nassert_eq!(*five, 5);
    \n
    source

    pub fn try_new_zeroed_in(alloc: A) -> Result<Arc<MaybeUninit<T>, A>, AllocError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new Arc with uninitialized contents, with the memory\nbeing filled with 0 bytes, in the provided allocator, returning an error if allocation\nfails.

    \n

    See MaybeUninit::zeroed for examples of correct and incorrect usage\nof this method.

    \n
    §Examples
    \n
    #![feature(new_uninit, allocator_api)]\n\nuse std::sync::Arc;\nuse std::alloc::System;\n\nlet zero = Arc::<u32, _>::try_new_zeroed_in(System)?;\nlet zero = unsafe { zero.assume_init() };\n\nassert_eq!(*zero, 0);
    \n
    1.4.0 · source

    pub fn try_unwrap(this: Arc<T, A>) -> Result<T, Arc<T, A>>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, an Err is returned with the same Arc that was\npassed in.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    It is strongly recommended to use Arc::into_inner instead if you don’t\nkeep the Arc in the Err case.\nImmediately dropping the Err-value, as the expression\nArc::try_unwrap(this).ok() does, can cause the strong count to\ndrop to zero and the inner value of the Arc to be dropped.\nFor instance, if two threads execute such an expression in parallel,\nthere is a race condition without the possibility of unsafety:\nThe threads could first both check whether they own the last instance\nin Arc::try_unwrap, determine that they both do not, and then both\ndiscard and drop their instance in the call to ok.\nIn this scenario, the value inside the Arc is safely destroyed\nby exactly one of the threads, but neither thread will ever be able\nto use the value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nassert_eq!(Arc::try_unwrap(x), Ok(3));\n\nlet x = Arc::new(4);\nlet _y = Arc::clone(&x);\nassert_eq!(*Arc::try_unwrap(x).unwrap_err(), 4);
    \n
    1.70.0 · source

    pub fn into_inner(this: Arc<T, A>) -> Option<T>

    Returns the inner value, if the Arc has exactly one strong reference.

    \n

    Otherwise, None is returned and the Arc is dropped.

    \n

    This will succeed even if there are outstanding weak references.

    \n

    If Arc::into_inner is called on every clone of this Arc,\nit is guaranteed that exactly one of the calls returns the inner value.\nThis means in particular that the inner value is not dropped.

    \n

    Arc::try_unwrap is conceptually similar to Arc::into_inner, but it\nis meant for different use-cases. If used as a direct replacement\nfor Arc::into_inner anyway, such as with the expression\nArc::try_unwrap(this).ok(), then it does\nnot give the same guarantee as described in the previous paragraph.\nFor more information, see the examples below and read the documentation\nof Arc::try_unwrap.

    \n
    §Examples
    \n

    Minimal example demonstrating the guarantee that Arc::into_inner gives.

    \n\n
    use std::sync::Arc;\n\nlet x = Arc::new(3);\nlet y = Arc::clone(&x);\n\n// Two threads calling `Arc::into_inner` on both clones of an `Arc`:\nlet x_thread = std::thread::spawn(|| Arc::into_inner(x));\nlet y_thread = std::thread::spawn(|| Arc::into_inner(y));\n\nlet x_inner_value = x_thread.join().unwrap();\nlet y_inner_value = y_thread.join().unwrap();\n\n// One of the threads is guaranteed to receive the inner value:\nassert!(matches!(\n    (x_inner_value, y_inner_value),\n    (None, Some(3)) | (Some(3), None)\n));\n// The result could also be `(None, None)` if the threads called\n// `Arc::try_unwrap(x).ok()` and `Arc::try_unwrap(y).ok()` instead.
    \n

    A more practical example demonstrating the need for Arc::into_inner:

    \n\n
    use std::sync::Arc;\n\n// Definition of a simple singly linked list using `Arc`:\n#[derive(Clone)]\nstruct LinkedList<T>(Option<Arc<Node<T>>>);\nstruct Node<T>(T, Option<Arc<Node<T>>>);\n\n// Dropping a long `LinkedList<T>` relying on the destructor of `Arc`\n// can cause a stack overflow. To prevent this, we can provide a\n// manual `Drop` implementation that does the destruction in a loop:\nimpl<T> Drop for LinkedList<T> {\n    fn drop(&mut self) {\n        let mut link = self.0.take();\n        while let Some(arc_node) = link.take() {\n            if let Some(Node(_value, next)) = Arc::into_inner(arc_node) {\n                link = next;\n            }\n        }\n    }\n}\n\n// Implementation of `new` and `push` omitted\nimpl<T> LinkedList<T> {\n    /* ... */\n}\n\n// The following code could have still caused a stack overflow\n// despite the manual `Drop` impl if that `Drop` impl had used\n// `Arc::try_unwrap(arc).ok()` instead of `Arc::into_inner(arc)`.\n\n// Create a long list and clone it\nlet mut x = LinkedList::new();\nlet size = 100000;\nfor i in 0..size {\n    x.push(i); // Adds i to the front of x\n}\nlet y = x.clone();\n\n// Drop the clones in parallel\nlet x_thread = std::thread::spawn(|| drop(x));\nlet y_thread = std::thread::spawn(|| drop(y));\nx_thread.join().unwrap();\ny_thread.join().unwrap();
    \n
    ",0,"jf_pcs::multilinear_kzg::MLE"],["
    1.64.0 · source§

    impl<T> AsFd for Arc<T>
    where\n T: AsFd + ?Sized,

    This impl allows implementing traits that require AsFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\n\ntrait MyTrait: AsFd {}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_fd(&self) -> BorrowedFd<'_>

    Borrows the file descriptor. Read more
    ","AsFd","jf_pcs::multilinear_kzg::MLE"],["
    1.63.0 · source§

    impl<T> AsRawFd for Arc<T>
    where\n T: AsRawFd,

    This impl allows implementing traits that require AsRawFd on Arc.

    \n\n
    use std::net::UdpSocket;\nuse std::sync::Arc;\ntrait MyTrait: AsRawFd {\n}\nimpl MyTrait for Arc<UdpSocket> {}\nimpl MyTrait for Box<UdpSocket> {}
    \n
    source§

    fn as_raw_fd(&self) -> i32

    Extracts the raw file descriptor. Read more
    ","AsRawFd","jf_pcs::multilinear_kzg::MLE"],["
    1.5.0 · source§

    impl<T, A> AsRef<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn as_ref(&self) -> &T

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Borrow<T> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn borrow(&self) -> &T

    Immutably borrows from an owned value. Read more
    ","Borrow","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> CanonicalDeserialize for Arc<T>
    where\n T: CanonicalDeserialize + ToOwned + Sync + Send,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Arc<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> CanonicalSerialize for Arc<T>
    where\n T: CanonicalSerialize + ToOwned,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Clone for Arc<T, A>
    where\n A: Allocator + Clone,\n T: ?Sized,

    source§

    fn clone(&self) -> Arc<T, A>

    Makes a clone of the Arc pointer.

    \n

    This creates another pointer to the same allocation, increasing the\nstrong reference count.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nlet _ = Arc::clone(&five);
    \n
    1.0.0 · source§

    fn clone_from(&mut self, source: &Self)

    Performs copy-assignment from source. Read more
    ","Clone","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Debug for Arc<T, A>
    where\n T: Debug + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T> Default for Arc<T>
    where\n T: Default,

    source§

    fn default() -> Arc<T>

    Creates a new Arc<T>, with the Default value for T.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet x: Arc<i32> = Default::default();\nassert_eq!(*x, 0);
    \n
    ","Default","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Deref for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    §

    type Target = T

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &T

    Dereferences the value.
    ","Deref","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<'de, T> Deserialize<'de> for Arc<T>
    where\n Box<T>: Deserialize<'de>,\n T: ?Sized,

    This impl requires the \"rc\" Cargo feature of Serde.

    \n

    Deserializing a data structure containing Arc will not attempt to\ndeduplicate Arc references to the same data. Every deserialized Arc\nwill end up with a strong count of 1.

    \n
    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Arc<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Display for Arc<T, A>
    where\n T: Display + ?Sized,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Display","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Drop for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn drop(&mut self)

    Drops the Arc.

    \n

    This will decrement the strong reference count. If the strong reference\ncount reaches zero then the only other references (if any) are\nWeak, so we drop the inner value.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nstruct Foo;\n\nimpl Drop for Foo {\n    fn drop(&mut self) {\n        println!(\"dropped!\");\n    }\n}\n\nlet foo  = Arc::new(Foo);\nlet foo2 = Arc::clone(&foo);\n\ndrop(foo);    // Doesn't print anything\ndrop(foo2);   // Prints \"dropped!\"
    \n
    ","Drop","jf_pcs::multilinear_kzg::MLE"],["
    1.52.0 · source§

    impl<T> Error for Arc<T>
    where\n T: Error + ?Sized,

    source§

    fn description(&self) -> &str

    👎Deprecated since 1.42.0: use the Display impl or to_string()
    source§

    fn cause(&self) -> Option<&dyn Error>

    👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
    source§

    fn source(&self) -> Option<&(dyn Error + 'static)>

    The lower-level source of this error, if any. Read more
    source§

    fn provide<'a>(&'a self, req: &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
    ","Error","jf_pcs::multilinear_kzg::MLE"],["
    1.21.0 · source§

    impl<T, A> From<Box<T, A>> for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn from(v: Box<T, A>) -> Arc<T, A>

    Move a boxed object to a new, reference-counted allocation.

    \n
    §Example
    \n
    let unique: Box<str> = Box::from(\"eggplant\");\nlet shared: Arc<str> = Arc::from(unique);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","jf_pcs::multilinear_kzg::MLE"],["
    1.45.0 · source§

    impl<'a, B> From<Cow<'a, B>> for Arc<B>
    where\n B: ToOwned + ?Sized,\n Arc<B>: From<&'a B> + From<<B as ToOwned>::Owned>,

    source§

    fn from(cow: Cow<'a, B>) -> Arc<B>

    Create an atomically reference-counted pointer from\na clone-on-write pointer by copying its content.

    \n
    §Example
    \n
    let cow: Cow<'_, str> = Cow::Borrowed(\"eggplant\");\nlet shared: Arc<str> = Arc::from(cow);\nassert_eq!(\"eggplant\", &shared[..]);
    \n
    ","From>","jf_pcs::multilinear_kzg::MLE"],["
    1.6.0 · source§

    impl<T> From<T> for Arc<T>

    source§

    fn from(t: T) -> Arc<T>

    Converts a T into an Arc<T>

    \n

    The conversion moves the value into a\nnewly allocated Arc. It is equivalent to\ncalling Arc::new(t).

    \n
    §Example
    \n
    let x = 5;\nlet arc = Arc::new(5);\n\nassert_eq!(Arc::from(x), arc);
    \n
    ","From","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Hash for Arc<T, A>
    where\n T: Hash + ?Sized,\n A: Allocator,

    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","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Ord for Arc<T, A>
    where\n T: Ord + ?Sized,\n A: Allocator,

    source§

    fn cmp(&self, other: &Arc<T, A>) -> Ordering

    Comparison for two Arcs.

    \n

    The two are compared by calling cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Ordering::Less, five.cmp(&Arc::new(6)));
    \n
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> PartialEq for Arc<T, A>
    where\n T: PartialEq + ?Sized,\n A: Allocator,

    source§

    fn eq(&self, other: &Arc<T, A>) -> bool

    Equality for two Arcs.

    \n

    Two Arcs are equal if their inner values are equal, even if they are\nstored in different allocation.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same allocation are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five == Arc::new(5));
    \n
    source§

    fn ne(&self, other: &Arc<T, A>) -> bool

    Inequality for two Arcs.

    \n

    Two Arcs are not equal if their inner values are not equal.

    \n

    If T also implements Eq (implying reflexivity of equality),\ntwo Arcs that point to the same value are always equal.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five != Arc::new(6));
    \n
    ","PartialEq","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> PartialOrd for Arc<T, A>
    where\n T: PartialOrd + ?Sized,\n A: Allocator,

    source§

    fn partial_cmp(&self, other: &Arc<T, A>) -> Option<Ordering>

    Partial comparison for two Arcs.

    \n

    The two are compared by calling partial_cmp() on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\nuse std::cmp::Ordering;\n\nlet five = Arc::new(5);\n\nassert_eq!(Some(Ordering::Less), five.partial_cmp(&Arc::new(6)));
    \n
    source§

    fn lt(&self, other: &Arc<T, A>) -> bool

    Less-than comparison for two Arcs.

    \n

    The two are compared by calling < on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five < Arc::new(6));
    \n
    source§

    fn le(&self, other: &Arc<T, A>) -> bool

    ‘Less than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling <= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five <= Arc::new(5));
    \n
    source§

    fn gt(&self, other: &Arc<T, A>) -> bool

    Greater-than comparison for two Arcs.

    \n

    The two are compared by calling > on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five > Arc::new(4));
    \n
    source§

    fn ge(&self, other: &Arc<T, A>) -> bool

    ‘Greater than or equal to’ comparison for two Arcs.

    \n

    The two are compared by calling >= on their inner values.

    \n
    §Examples
    \n
    use std::sync::Arc;\n\nlet five = Arc::new(5);\n\nassert!(five >= Arc::new(5));
    \n
    ","PartialOrd","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Pointer for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Pointer","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T> Serialize for Arc<T>
    where\n T: Serialize + ?Sized,

    This impl requires the \"rc\" Cargo feature of Serde.

    \n

    Serializing a data structure containing Arc will serialize a copy of\nthe contents of the Arc each time the Arc is referenced within the\ndata structure. Serialization will not attempt to deduplicate these\nrepeated data.

    \n
    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","jf_pcs::multilinear_kzg::MLE"],["
    §

    impl<T> Valid for Arc<T>
    where\n T: Valid + Sync + Send,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Arc<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Arc<T>: 'a,

    ","Valid","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, U, A> CoerceUnsized<Arc<U, A>> for Arc<T, A>
    where\n T: Unsize<U> + ?Sized,\n A: Allocator,\n U: ?Sized,

    ","CoerceUnsized>","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, A> DerefPure for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","DerefPure","jf_pcs::multilinear_kzg::MLE"],["
    source§

    impl<T, U> DispatchFromDyn<Arc<U>> for Arc<T>
    where\n T: Unsize<U> + ?Sized,\n U: ?Sized,

    ","DispatchFromDyn>","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Eq for Arc<T, A>
    where\n T: Eq + ?Sized,\n A: Allocator,

    ","Eq","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Send for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Send,

    ","Send","jf_pcs::multilinear_kzg::MLE"],["
    1.0.0 · source§

    impl<T, A> Sync for Arc<T, A>
    where\n T: Sync + Send + ?Sized,\n A: Allocator + Sync,

    ","Sync","jf_pcs::multilinear_kzg::MLE"],["
    1.33.0 · source§

    impl<T, A> Unpin for Arc<T, A>
    where\n A: Allocator,\n T: ?Sized,

    ","Unpin","jf_pcs::multilinear_kzg::MLE"],["
    1.9.0 · source§

    impl<T, A> UnwindSafe for Arc<T, A>
    where\n T: RefUnwindSafe + ?Sized,\n A: Allocator + UnwindSafe,

    ","UnwindSafe","jf_pcs::multilinear_kzg::MLE"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/alloc/vec/struct.Vec.js b/type.impl/alloc/vec/struct.Vec.js index e70e5280c..1b3f72abe 100644 --- a/type.impl/alloc/vec/struct.Vec.js +++ b/type.impl/alloc/vec/struct.Vec.js @@ -1,4 +1,4 @@ (function() {var type_impls = { -"jf_merkle_tree":[["
    §

    impl<A> Absorb for Vec<A>
    where\n A: Absorb,

    §

    fn to_sponge_bytes(&self, dest: &mut Vec<u8>)

    Converts the object into a list of bytes that can be absorbed by a CryptographicSponge.\nAppend the list to dest.
    §

    fn to_sponge_field_elements<F>(&self, dest: &mut Vec<F>)
    where\n F: PrimeField,

    Converts the object into field elements that can be absorbed by a CryptographicSponge.\nAppend the list to dest
    §

    fn to_sponge_bytes_as_vec(&self) -> Vec<u8>

    Converts the object into a list of bytes that can be absorbed by a CryptographicSponge.\nReturn the list as Vec.
    §

    fn to_sponge_field_elements_as_vec<F>(&self) -> Vec<F>
    where\n F: PrimeField,

    Converts the object into field elements that can be absorbed by a CryptographicSponge.\nReturn the list as Vec
    §

    fn batch_to_sponge_bytes(batch: &[Self], dest: &mut Vec<u8>)
    where\n Self: Sized,

    Specifies the conversion into a list of bytes for a batch. Append the list to dest.
    §

    fn batch_to_sponge_bytes_as_vec(batch: &[Self]) -> Vec<u8>
    where\n Self: Sized,

    Specifies the conversion into a list of bytes for a batch. Return the list as Vec.
    §

    fn batch_to_sponge_field_elements<F>(batch: &[Self], dest: &mut Vec<F>)
    where\n F: PrimeField,\n Self: Sized,

    Specifies the conversion into a list of field elements for a batch. Append the list to dest.
    §

    fn batch_to_sponge_field_elements_as_vec<F>(batch: &[Self]) -> Vec<F>
    where\n F: PrimeField,\n Self: Sized,

    Specifies the conversion into a list of field elements for a batch. Append the list to dest.
    ","Absorb","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<A> AbsorbWithLength for Vec<A>
    where\n A: Absorb,

    §

    fn absorb_length(&self) -> usize

    The length of the self being absorbed.
    §

    fn to_sponge_bytes_with_length(&self, dest: &mut Vec<u8>)

    Converts the object into a list of bytes along with its length information\nthat can be absorbed by a CryptographicSponge.\nAppend the list to dest.
    §

    fn to_sponge_field_elements_with_length<F>(&self, dest: &mut Vec<F>)
    where\n F: PrimeField,

    Converts the object into field elements along with its length information\nthat can be absorbed by a CryptographicSponge.\nAppend the list to dest
    ","AbsorbWithLength","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> AsMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> AsMut<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut Vec<T, A>

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> AsRef<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &Vec<T, A>

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Borrow<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> BorrowMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> CanonicalDeserialize for Vec<T>
    where\n T: CanonicalDeserialize,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Vec<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> CanonicalSerialize for Vec<T>
    where\n T: CanonicalSerialize,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Clone for Vec<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone_from(&mut self, source: &Vec<T, A>)

    Overwrites the contents of self with a clone of the contents of source.

    \n

    This method is preferred over simply assigning source.clone() to self,\nas it avoids reallocation if possible. Additionally, if the element type\nT overrides clone_from(), this will reuse the resources of self’s\nelements as well.

    \n
    §Examples
    \n
    let x = vec![5, 6, 7];\nlet mut y = vec![8, 9, 10];\nlet yp: *const i32 = y.as_ptr();\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no reallocation occurred\nassert_eq!(yp, y.as_ptr());
    \n
    source§

    fn clone(&self) -> Vec<T, A>

    Returns a copy of the value. Read more
    ","Clone","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Debug for Vec<T, A>
    where\n T: Debug,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> Default for Vec<T>

    source§

    fn default() -> Vec<T>

    Creates an empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    ","Default","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Deref for Vec<T, A>
    where\n A: Allocator,

    §

    type Target = [T]

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &[T]

    Dereferences the value.
    ","Deref","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Vec<T, A>
    where\n A: Allocator,

    source§

    fn deref_mut(&mut self) -> &mut [T]

    Mutably dereferences the value.
    ","DerefMut","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<'de, T> Deserialize<'de> for Vec<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Vec<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Drop for Vec<T, A>
    where\n A: Allocator,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","jf_merkle_tree::internal::MerklePath"],["
    1.2.0 · source§

    impl<'a, T, A> Extend<&'a T> for Vec<T, A>
    where\n T: Copy + 'a,\n A: Allocator,

    Extend implementation that copies elements out of references before pushing them onto the Vec.

    \n

    This implementation is specialized for slice iterators, where it uses copy_from_slice to\nappend the entire slice at once.

    \n
    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = &'a T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, _: &'a T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend<&'a T>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Extend<T> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, item: T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> From<&[T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&[T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&[T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.19.0 · source§

    impl<T> From<&mut [T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&mut [T]>","jf_merkle_tree::internal::MerklePath"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&mut [T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&mut [T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.44.0 · source§

    impl<T, const N: usize> From<[T; N]> for Vec<T>

    source§

    fn from(s: [T; N]) -> Vec<T>

    Allocate a Vec<T> and move s’s items into it.

    \n
    §Examples
    \n
    assert_eq!(Vec::from([1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<[T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> From<BinaryHeap<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(heap: BinaryHeap<T, A>) -> Vec<T, A>

    Converts a BinaryHeap<T> into a Vec<T>.

    \n

    This conversion requires no data movement or allocation, and has\nconstant time complexity.

    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.18.0 · source§

    impl<T, A> From<Box<[T], A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(s: Box<[T], A>) -> Vec<T, A>

    Convert a boxed slice into a vector by transferring ownership of\nthe existing heap allocation.

    \n
    §Examples
    \n
    let b: Box<[i32]> = vec![1, 2, 3].into_boxed_slice();\nassert_eq!(Vec::from(b), vec![1, 2, 3]);
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.14.0 · source§

    impl<'a, T> From<Cow<'a, [T]>> for Vec<T>
    where\n [T]: ToOwned<Owned = Vec<T>>,

    source§

    fn from(s: Cow<'a, [T]>) -> Vec<T>

    Convert a clone-on-write slice into a vector.

    \n

    If s already owns a Vec<T>, it will be returned directly.\nIf s is borrowing a slice, a new Vec<T> will be allocated and\nfilled by cloning s’s items into it.

    \n
    §Examples
    \n
    let o: Cow<'_, [i32]> = Cow::Owned(vec![1, 2, 3]);\nlet b: Cow<'_, [i32]> = Cow::Borrowed(&[1, 2, 3]);\nassert_eq!(Vec::from(o), Vec::from(b));
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.10.0 · source§

    impl<T, A> From<VecDeque<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(other: VecDeque<T, A>) -> Vec<T, A>

    Turn a VecDeque<T> into a Vec<T>.

    \n

    This never needs to re-allocate, but does need to do O(n) data movement if\nthe circular buffer doesn’t happen to be at the beginning of the allocation.

    \n
    §Examples
    \n
    use std::collections::VecDeque;\n\n// This one is *O*(1).\nlet deque: VecDeque<_> = (1..5).collect();\nlet ptr = deque.as_slices().0.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);\n\n// This one needs data rearranging.\nlet mut deque: VecDeque<_> = (1..5).collect();\ndeque.push_front(9);\ndeque.push_front(8);\nlet ptr = deque.as_slices().1.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [8, 9, 1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> FromIterator<T> for Vec<T>

    Collects an iterator into a Vec, commonly called via Iterator::collect()

    \n

    §Allocation behavior

    \n

    In general Vec does not guarantee any particular growth or allocation strategy.\nThat also applies to this trait impl.

    \n

    Note: This section covers implementation details and is therefore exempt from\nstability guarantees.

    \n

    Vec may use any or none of the following strategies,\ndepending on the supplied iterator:

    \n
      \n
    • preallocate based on Iterator::size_hint()\n
        \n
      • and panic if the number of items is outside the provided lower/upper bounds
      • \n
      \n
    • \n
    • use an amortized growth strategy similar to pushing one item at a time
    • \n
    • perform the iteration in-place on the original allocation backing the iterator
    • \n
    \n

    The last case warrants some attention. It is an optimization that in many cases reduces peak memory\nconsumption and improves cache locality. But when big, short-lived allocations are created,\nonly a small fraction of their items get collected, no further use is made of the spare capacity\nand the resulting Vec is moved into a longer-lived structure, then this can lead to the large\nallocations having their lifetimes unnecessarily extended which can result in increased memory\nfootprint.

    \n

    In cases where this is an issue, the excess capacity can be discarded with Vec::shrink_to(),\nVec::shrink_to_fit() or by collecting into Box<[T]> instead, which additionally reduces\nthe size of the long-lived struct.

    \n\n
    static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new());\n\nfor i in 0..10 {\n    let big_temporary: Vec<u16> = (0..1024).collect();\n    // discard most items\n    let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect();\n    // without this a lot of unused capacity might be moved into the global\n    result.shrink_to_fit();\n    LONG_LIVED.lock().unwrap().push(result);\n}
    \n
    source§

    fn from_iter<I>(iter: I) -> Vec<T>
    where\n I: IntoIterator<Item = T>,

    Creates a value from an iterator. Read more
    ","FromIterator","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> FromParallelIterator<T> for Vec<T>
    where\n T: Send,

    Collects items from a parallel iterator into a vector.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Vec<T>
    where\n I: IntoParallelIterator<Item = T>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Hash for Vec<T, A>
    where\n T: Hash,\n A: Allocator,

    The hash of a vector is the same as that of the corresponding slice,\nas required by the core::borrow::Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet v: Vec<u8> = vec![0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(v), b.hash_one(s));
    \n
    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","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, I, A> Index<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    §

    type Output = <I as SliceIndex<[T]>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<Vec<T, A> as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, I, A> IndexMut<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    source§

    fn index_mut(&mut self, index: I) -> &mut <Vec<T, A> as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T>
    where\n T: IntoDeserializer<'de, E>,\n E: Error,

    §

    type Deserializer = SeqDeserializer<<Vec<T> as IntoIterator>::IntoIter, E>

    The type of the deserializer being converted into.
    source§

    fn into_deserializer(self) -> <Vec<T> as IntoDeserializer<'de, E>>::Deserializer

    Convert this value into a deserializer.
    ","IntoDeserializer<'de, E>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> IntoIterator for Vec<T, A>
    where\n A: Allocator,

    source§

    fn into_iter(self) -> <Vec<T, A> as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe vector (from start to end). The vector cannot be used after calling\nthis.

    \n
    §Examples
    \n
    let v = vec![\"a\".to_string(), \"b\".to_string()];\nlet mut v_iter = v.into_iter();\n\nlet first_element: Option<String> = v_iter.next();\n\nassert_eq!(first_element, Some(\"a\".to_string()));\nassert_eq!(v_iter.next(), Some(\"b\".to_string()));\nassert_eq!(v_iter.next(), None);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, A>

    Which kind of iterator are we turning this into?
    ","IntoIterator","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> IntoParallelIterator for Vec<T>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Vec<T> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Ord for Vec<T, A>
    where\n T: Ord,\n A: Allocator,

    Implements ordering of vectors, lexicographically.

    \n
    source§

    fn cmp(&self, other: &Vec<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<'a, T> ParallelExtend<&'a T> for Vec<T>
    where\n T: 'a + Copy + Send + Sync,

    Extends a vector with copied items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = &'a T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend<&'a T>","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> ParallelExtend<T> for Vec<T>
    where\n T: Send,

    Extends a vector with items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<&[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&mut [U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","jf_merkle_tree::internal::MerklePath"],["
    1.48.0 · source§

    impl<T, U, A> PartialEq<[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A1, A2> PartialEq<Vec<U, A2>> for Vec<T, A1>
    where\n A1: Allocator,\n A2: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &Vec<U, A2>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Vec<U, A2>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A1, A2> PartialOrd<Vec<T, A2>> for Vec<T, A1>
    where\n T: PartialOrd,\n A1: Allocator,\n A2: Allocator,

    Implements comparison of vectors, lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &Vec<T, A2>) -> 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>","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T> Serialize for Vec<T>
    where\n T: 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","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> Valid for Vec<T>
    where\n T: Valid,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Vec<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Vec<T>: 'a,

    ","Valid","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T> Vec<T>

    1.0.0 (const: 1.39.0) · source

    pub const fn new() -> Vec<T>

    Constructs a new, empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::new();
    \n
    1.0.0 · source

    pub fn with_capacity(capacity: usize) -> Vec<T>

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<()>::with_capacity(10);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity(capacity: usize) -> Result<Vec<T>, TryReserveError>

    🔬This is a nightly-only experimental API. (try_with_capacity)

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    1.0.0 · source

    pub unsafe fn from_raw_parts(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n) -> Vec<T>

    Creates a Vec<T> directly from a pointer, a length, and a capacity.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must have been allocated using the global allocator, such as via\nthe alloc::alloc function.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to be the capacity that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is normally not safe\nto build a Vec<u8> from a pointer to a C char array with length\nsize_t, doing so is only safe if the array was initially allocated by\na Vec or String.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1. To avoid\nthese issues, it is often preferable to do casting/transmuting using\nslice::from_raw_parts instead.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    use std::ptr;\nuse std::mem;\n\nlet v = vec![1, 2, 3];\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts(p, len, cap);\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    use std::alloc::{alloc, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = alloc(layout).cast::<u32>();\n        if mem.is_null() {\n            return;\n        }\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts(mem, 1, 16)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: Clone,\n A: Allocator,

    1.5.0 · source

    pub fn resize(&mut self, new_len: usize, value: T)

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with value.\nIf new_len is less than len, the Vec is simply truncated.

    \n

    This method requires T to implement Clone,\nin order to be able to clone the passed value.\nIf you need more flexibility (or want to rely on Default instead of\nClone), use Vec::resize_with.\nIf you only need to resize to a smaller size, use Vec::truncate.

    \n
    §Examples
    \n
    let mut vec = vec![\"hello\"];\nvec.resize(3, \"world\");\nassert_eq!(vec, [\"hello\", \"world\", \"world\"]);\n\nlet mut vec = vec![1, 2, 3, 4];\nvec.resize(2, 0);\nassert_eq!(vec, [1, 2]);
    \n
    1.6.0 · source

    pub fn extend_from_slice(&mut self, other: &[T])

    Clones and appends all elements in a slice to the Vec.

    \n

    Iterates over the slice other, clones each element, and then appends\nit to this Vec. The other slice is traversed in-order.

    \n

    Note that this function is same as extend except that it is\nspecialized to work with slices instead. If and when Rust gets\nspecialization this function will likely be deprecated (but still\navailable).

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.extend_from_slice(&[2, 3, 4]);\nassert_eq!(vec, [1, 2, 3, 4]);
    \n
    1.53.0 · source

    pub fn extend_from_within<R>(&mut self, src: R)
    where\n R: RangeBounds<usize>,

    Copies elements from src range to the end of the vector.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut vec = vec![0, 1, 2, 3, 4];\n\nvec.extend_from_within(2..);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]);\n\nvec.extend_from_within(..2);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1]);\n\nvec.extend_from_within(4..8);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: PartialEq,\n A: Allocator,

    1.0.0 · source

    pub fn dedup(&mut self)

    Removes consecutive repeated elements in the vector according to the\nPartialEq trait implementation.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 2, 3, 2];\n\nvec.dedup();\n\nassert_eq!(vec, [1, 2, 3, 2]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    1.21.0 · source

    pub fn splice<R, I>(\n &mut self,\n range: R,\n replace_with: I,\n) -> Splice<'_, <I as IntoIterator>::IntoIter, A>
    where\n R: RangeBounds<usize>,\n I: IntoIterator<Item = T>,

    Creates a splicing iterator that replaces the specified range in the vector\nwith the given replace_with iterator and yields the removed items.\nreplace_with does not need to be the same length as range.

    \n

    range is removed even if the iterator is not consumed until the end.

    \n

    It is unspecified how many elements are removed from the vector\nif the Splice value is leaked.

    \n

    The input iterator replace_with is only consumed when the Splice value is dropped.

    \n

    This is optimal if:

    \n
      \n
    • The tail (elements in the vector after range) is empty,
    • \n
    • or replace_with yields fewer or equal elements than range’s length
    • \n
    • or the lower bound of its size_hint() is exact.
    • \n
    \n

    Otherwise, a temporary vector is allocated and the tail is moved twice.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3, 4];\nlet new = [7, 8, 9];\nlet u: Vec<_> = v.splice(1..3, new).collect();\nassert_eq!(v, &[1, 7, 8, 9, 4]);\nassert_eq!(u, &[2, 3]);
    \n
    source

    pub fn extract_if<F>(&mut self, filter: F) -> ExtractIf<'_, T, F, A>
    where\n F: FnMut(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (extract_if)

    Creates an iterator which uses a closure to determine if an element should be removed.

    \n

    If the closure returns true, then the element is removed and yielded.\nIf the closure returns false, the element will remain in the vector and will not be yielded\nby the iterator.

    \n

    If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

    \n

    Using this method is equivalent to the following code:

    \n\n
    let mut i = 0;\nwhile i < vec.len() {\n    if some_predicate(&mut vec[i]) {\n        let val = vec.remove(i);\n        // your code here\n    } else {\n        i += 1;\n    }\n}\n
    \n

    But extract_if is easier to use. extract_if is also more efficient,\nbecause it can backshift the elements of the array in bulk.

    \n

    Note that extract_if also lets you mutate every element in the filter closure,\nregardless of whether you choose to keep or remove it.

    \n
    §Examples
    \n

    Splitting an array into evens and odds, reusing the original allocation:

    \n\n
    #![feature(extract_if)]\nlet mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15];\n\nlet evens = numbers.extract_if(|x| *x % 2 == 0).collect::<Vec<_>>();\nlet odds = numbers;\n\nassert_eq!(evens, vec![2, 4, 6, 8, 14]);\nassert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    source

    pub const fn new_in(alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec: Vec<i32, _> = Vec::new_in(System);
    \n
    source

    pub fn with_capacity_in(capacity: usize, alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T, A> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec = Vec::with_capacity_in(10, System);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<(), System>::with_capacity_in(10, System);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity_in(\n capacity: usize,\n alloc: A,\n) -> Result<Vec<T, A>, TryReserveError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    source

    pub unsafe fn from_raw_parts_in(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n alloc: A,\n) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Creates a Vec<T, A> directly from a pointer, a length, a capacity,\nand an allocator.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must be currently allocated via the given allocator alloc.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to fit the layout size that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T, A>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is not safe\nto build a Vec<u8> from a pointer to a C char array with length size_t.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nuse std::ptr;\nuse std::mem;\n\nlet mut v = Vec::with_capacity_in(3, System);\nv.push(1);\nv.push(2);\nv.push(3);\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\nlet alloc = v.allocator();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts_in(p, len, cap, alloc.clone());\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{AllocError, Allocator, Global, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = match Global.allocate(layout) {\n            Ok(mem) => mem.cast::<u32>().as_ptr(),\n            Err(AllocError) => return,\n        };\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts_in(mem, 1, 16, Global)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    source

    pub fn into_raw_parts(self) -> (*mut T, usize, usize)

    🔬This is a nightly-only experimental API. (vec_into_raw_parts)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity).

    \n

    Returns the raw pointer to the underlying data, the length of\nthe vector (in elements), and the allocated capacity of the\ndata (in elements). These are the same arguments in the same\norder as the arguments to from_raw_parts.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(vec_into_raw_parts)]\nlet v: Vec<i32> = vec![-1, 0, 1];\n\nlet (ptr, len, cap) = v.into_raw_parts();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts(ptr, len, cap)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    source

    pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity, allocator).

    \n

    Returns the raw pointer to the underlying data, the length of the vector (in elements),\nthe allocated capacity of the data (in elements), and the allocator. These are the same\narguments in the same order as the arguments to from_raw_parts_in.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts_in function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(allocator_api, vec_into_raw_parts)]\n\nuse std::alloc::System;\n\nlet mut v: Vec<i32, System> = Vec::new_in(System);\nv.push(-1);\nv.push(0);\nv.push(1);\n\nlet (ptr, len, cap, alloc) = v.into_raw_parts_with_alloc();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts_in(ptr, len, cap, alloc)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns the total number of elements the vector can hold without\nreallocating.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::with_capacity(10);\nvec.push(42);\nassert!(vec.capacity() >= 10);
    \n
    1.0.0 · source

    pub fn reserve(&mut self, additional: usize)

    Reserves capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to\nspeculatively avoid frequent reallocations. After calling reserve,\ncapacity will be greater than or equal to self.len() + additional.\nDoes nothing if capacity is already sufficient.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve(10);\nassert!(vec.capacity() >= 11);
    \n
    1.0.0 · source

    pub fn reserve_exact(&mut self, additional: usize)

    Reserves the minimum capacity for at least additional more elements to\nbe inserted in the given Vec<T>. Unlike reserve, this will not\ndeliberately over-allocate to speculatively avoid frequent allocations.\nAfter calling reserve_exact, capacity will be greater than or equal to\nself.len() + additional. Does nothing if the capacity is already\nsufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer reserve if future insertions are expected.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve_exact(10);\nassert!(vec.capacity() >= 11);
    \n
    1.57.0 · source

    pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

    Tries to reserve capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to speculatively avoid\nfrequent reallocations. After calling try_reserve, capacity will be\ngreater than or equal to self.len() + additional if it returns\nOk(()). Does nothing if capacity is already sufficient. This method\npreserves the contents even if an error occurs.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.57.0 · source

    pub fn try_reserve_exact(\n &mut self,\n additional: usize,\n) -> Result<(), TryReserveError>

    Tries to reserve the minimum capacity for at least additional\nelements to be inserted in the given Vec<T>. Unlike try_reserve,\nthis will not deliberately over-allocate to speculatively avoid frequent\nallocations. After calling try_reserve_exact, capacity will be greater\nthan or equal to self.len() + additional if it returns Ok(()).\nDoes nothing if the capacity is already sufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer try_reserve if future insertions are expected.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve_exact(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.0.0 · source

    pub fn shrink_to_fit(&mut self)

    Shrinks the capacity of the vector as much as possible.

    \n

    The behavior of this method depends on the allocator, which may either shrink the vector\nin-place or reallocate. The resulting vector might still have some excess capacity, just as\nis the case for with_capacity. See Allocator::shrink for more details.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to_fit();\nassert!(vec.capacity() >= 3);
    \n
    1.56.0 · source

    pub fn shrink_to(&mut self, min_capacity: usize)

    Shrinks the capacity of the vector with a lower bound.

    \n

    The capacity will remain at least as large as both the length\nand the supplied value.

    \n

    If the current capacity is less than the lower limit, this is a no-op.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to(4);\nassert!(vec.capacity() >= 4);\nvec.shrink_to(0);\nassert!(vec.capacity() >= 3);
    \n
    1.0.0 · source

    pub fn into_boxed_slice(self) -> Box<[T], A>

    Converts the vector into Box<[T]>.

    \n

    Before doing the conversion, this method discards excess capacity like shrink_to_fit.

    \n
    §Examples
    \n
    let v = vec![1, 2, 3];\n\nlet slice = v.into_boxed_slice();
    \n

    Any excess capacity is removed:

    \n\n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\n\nassert!(vec.capacity() >= 10);\nlet slice = vec.into_boxed_slice();\nassert_eq!(slice.into_vec().capacity(), 3);
    \n
    1.0.0 · source

    pub fn truncate(&mut self, len: usize)

    Shortens the vector, keeping the first len elements and dropping\nthe rest.

    \n

    If len is greater or equal to the vector’s current length, this has\nno effect.

    \n

    The drain method can emulate truncate, but causes the excess\nelements to be returned instead of dropped.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n

    Truncating a five element vector to two elements:

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nvec.truncate(2);\nassert_eq!(vec, [1, 2]);
    \n

    No truncation occurs when len is greater than the vector’s current\nlength:

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(8);\nassert_eq!(vec, [1, 2, 3]);
    \n

    Truncating when len == 0 is equivalent to calling the clear\nmethod.

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(0);\nassert_eq!(vec, []);
    \n
    1.7.0 · source

    pub fn as_slice(&self) -> &[T]

    Extracts a slice containing the entire vector.

    \n

    Equivalent to &s[..].

    \n
    §Examples
    \n
    use std::io::{self, Write};\nlet buffer = vec![1, 2, 3, 5, 8];\nio::sink().write(buffer.as_slice()).unwrap();
    \n
    1.7.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Extracts a mutable slice of the entire vector.

    \n

    Equivalent to &mut s[..].

    \n
    §Examples
    \n
    use std::io::{self, Read};\nlet mut buffer = vec![0; 3];\nio::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
    \n
    1.37.0 · source

    pub fn as_ptr(&self) -> *const T

    Returns a raw pointer to the vector’s buffer, or a dangling raw pointer\nvalid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the slice,\nor mutable references to specific elements you are planning on accessing through this pointer,\nas well as writing to those elements, may still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    let x = vec![1, 2, 4];\nlet x_ptr = x.as_ptr();\n\nunsafe {\n    for i in 0..x.len() {\n        assert_eq!(*x_ptr.add(i), 1 << i);\n    }\n}
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0, 1, 2];\n    let ptr1 = v.as_ptr();\n    let _ = ptr1.read();\n    let ptr2 = v.as_mut_ptr().offset(2);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`\n    // because it mutated a different element:\n    let _ = ptr1.read();\n}
    \n
    1.37.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut T

    Returns an unsafe mutable pointer to the vector’s buffer, or a dangling\nraw pointer valid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the slice,\nor references to specific elements you are planning on accessing through this pointer,\nmay still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    // Allocate vector big enough for 4 elements.\nlet size = 4;\nlet mut x: Vec<i32> = Vec::with_capacity(size);\nlet x_ptr = x.as_mut_ptr();\n\n// Initialize elements via raw pointer writes, then set length.\nunsafe {\n    for i in 0..size {\n        *x_ptr.add(i) = i as i32;\n    }\n    x.set_len(size);\n}\nassert_eq!(&*x, &[0, 1, 2, 3]);
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0];\n    let ptr1 = v.as_mut_ptr();\n    ptr1.write(1);\n    let ptr2 = v.as_mut_ptr();\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    source

    pub fn allocator(&self) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n
    1.0.0 · source

    pub unsafe fn set_len(&mut self, new_len: usize)

    Forces the length of the vector to new_len.

    \n

    This is a low-level operation that maintains none of the normal\ninvariants of the type. Normally changing the length of a vector\nis done using one of the safe operations instead, such as\ntruncate, resize, extend, or clear.

    \n
    §Safety
    \n
      \n
    • new_len must be less than or equal to capacity().
    • \n
    • The elements at old_len..new_len must be initialized.
    • \n
    \n
    §Examples
    \n

    This method can be useful for situations in which the vector\nis serving as a buffer for other code, particularly over FFI:

    \n\n
    pub fn get_dictionary(&self) -> Option<Vec<u8>> {\n    // Per the FFI method's docs, \"32768 bytes is always enough\".\n    let mut dict = Vec::with_capacity(32_768);\n    let mut dict_length = 0;\n    // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that:\n    // 1. `dict_length` elements were initialized.\n    // 2. `dict_length` <= the capacity (32_768)\n    // which makes `set_len` safe to call.\n    unsafe {\n        // Make the FFI call...\n        let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length);\n        if r == Z_OK {\n            // ...and update the length to what was initialized.\n            dict.set_len(dict_length);\n            Some(dict)\n        } else {\n            None\n        }\n    }\n}
    \n

    While the following example is sound, there is a memory leak since\nthe inner vectors were not freed prior to the set_len call:

    \n\n
    let mut vec = vec![vec![1, 0, 0],\n                   vec![0, 1, 0],\n                   vec![0, 0, 1]];\n// SAFETY:\n// 1. `old_len..0` is empty so no elements need to be initialized.\n// 2. `0 <= capacity` always holds whatever `capacity` is.\nunsafe {\n    vec.set_len(0);\n}
    \n

    Normally, here, one would use clear instead to correctly drop\nthe contents and thus not leak memory.

    \n
    1.0.0 · source

    pub fn swap_remove(&mut self, index: usize) -> T

    Removes an element from the vector and returns it.

    \n

    The removed element is replaced by the last element of the vector.

    \n

    This does not preserve ordering of the remaining elements, but is O(1).\nIf you need to preserve the element order, use remove instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![\"foo\", \"bar\", \"baz\", \"qux\"];\n\nassert_eq!(v.swap_remove(1), \"bar\");\nassert_eq!(v, [\"foo\", \"qux\", \"baz\"]);\n\nassert_eq!(v.swap_remove(0), \"foo\");\nassert_eq!(v, [\"baz\", \"qux\"]);
    \n
    1.0.0 · source

    pub fn insert(&mut self, index: usize, element: T)

    Inserts an element at position index within the vector, shifting all\nelements after it to the right.

    \n
    §Panics
    \n

    Panics if index > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.insert(1, 4);\nassert_eq!(vec, [1, 4, 2, 3]);\nvec.insert(4, 5);\nassert_eq!(vec, [1, 4, 2, 3, 5]);
    \n
    §Time complexity
    \n

    Takes O(Vec::len) time. All items after the insertion index must be\nshifted to the right. In the worst case, all elements are shifted when\nthe insertion index is 0.

    \n
    1.0.0 · source

    pub fn remove(&mut self, index: usize) -> T

    Removes and returns the element at position index within the vector,\nshifting all elements after it to the left.

    \n

    Note: Because this shifts over the remaining elements, it has a\nworst-case performance of O(n). If you don’t need the order of elements\nto be preserved, use swap_remove instead. If you’d like to remove\nelements from the beginning of the Vec, consider using\nVecDeque::pop_front instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nassert_eq!(v.remove(1), 2);\nassert_eq!(v, [1, 3]);
    \n
    1.0.0 · source

    pub fn retain<F>(&mut self, f: F)
    where\n F: FnMut(&T) -> bool,

    Retains only the elements specified by the predicate.

    \n

    In other words, remove all elements e for which f(&e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain(|&x| x % 2 == 0);\nassert_eq!(vec, [2, 4]);
    \n

    Because the elements are visited exactly once in the original order,\nexternal state may be used to decide which elements to keep.

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nlet keep = [false, true, true, false, true];\nlet mut iter = keep.iter();\nvec.retain(|_| *iter.next().unwrap());\nassert_eq!(vec, [2, 3, 5]);
    \n
    1.61.0 · source

    pub fn retain_mut<F>(&mut self, f: F)
    where\n F: FnMut(&mut T) -> bool,

    Retains only the elements specified by the predicate, passing a mutable reference to it.

    \n

    In other words, remove all elements e such that f(&mut e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain_mut(|x| if *x <= 3 {\n    *x += 1;\n    true\n} else {\n    false\n});\nassert_eq!(vec, [2, 3, 4]);
    \n
    1.16.0 · source

    pub fn dedup_by_key<F, K>(&mut self, key: F)
    where\n F: FnMut(&mut T) -> K,\n K: PartialEq,

    Removes all but the first of consecutive elements in the vector that resolve to the same\nkey.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![10, 20, 21, 30, 20];\n\nvec.dedup_by_key(|i| *i / 10);\n\nassert_eq!(vec, [10, 20, 30, 20]);
    \n
    1.16.0 · source

    pub fn dedup_by<F>(&mut self, same_bucket: F)
    where\n F: FnMut(&mut T, &mut T) -> bool,

    Removes all but the first of consecutive elements in the vector satisfying a given equality\nrelation.

    \n

    The same_bucket function is passed references to two elements from the vector and\nmust determine if the elements compare equal. The elements are passed in opposite order\nfrom their order in the slice, so if same_bucket(a, b) returns true, a is removed.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![\"foo\", \"bar\", \"Bar\", \"baz\", \"bar\"];\n\nvec.dedup_by(|a, b| a.eq_ignore_ascii_case(b));\n\nassert_eq!(vec, [\"foo\", \"bar\", \"baz\", \"bar\"]);
    \n
    1.0.0 · source

    pub fn push(&mut self, value: T)

    Appends an element to the back of a collection.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2];\nvec.push(3);\nassert_eq!(vec, [1, 2, 3]);
    \n
    §Time complexity
    \n

    Takes amortized O(1) time. If the vector’s length would exceed its\ncapacity after the push, O(capacity) time is taken to copy the\nvector’s elements to a larger allocation. This expensive operation is\noffset by the capacity O(1) insertions it allows.

    \n
    source

    pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

    🔬This is a nightly-only experimental API. (vec_push_within_capacity)

    Appends an element if there is sufficient spare capacity, otherwise an error is returned\nwith the element.

    \n

    Unlike push this method will not reallocate when there’s insufficient capacity.\nThe caller should use reserve or try_reserve to ensure that there is enough capacity.

    \n
    §Examples
    \n

    A manual, panic-free alternative to FromIterator:

    \n\n
    #![feature(vec_push_within_capacity)]\n\nuse std::collections::TryReserveError;\nfn from_iter_fallible<T>(iter: impl Iterator<Item=T>) -> Result<Vec<T>, TryReserveError> {\n    let mut vec = Vec::new();\n    for value in iter {\n        if let Err(value) = vec.push_within_capacity(value) {\n            vec.try_reserve(1)?;\n            // this cannot fail, the previous line either returned or added at least 1 free slot\n            let _ = vec.push_within_capacity(value);\n        }\n    }\n    Ok(vec)\n}\nassert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100)));
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    1.0.0 · source

    pub fn pop(&mut self) -> Option<T>

    Removes the last element from a vector and returns it, or None if it\nis empty.

    \n

    If you’d like to pop the first element, consider using\nVecDeque::pop_front instead.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nassert_eq!(vec.pop(), Some(3));\nassert_eq!(vec, [1, 2]);
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    source

    pub fn pop_if<F>(&mut self, f: F) -> Option<T>
    where\n F: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (vec_pop_if)

    Removes and returns the last element in a vector if the predicate\nreturns true, or None if the predicate returns false or the vector\nis empty.

    \n
    §Examples
    \n
    #![feature(vec_pop_if)]\n\nlet mut vec = vec![1, 2, 3, 4];\nlet pred = |x: &mut i32| *x % 2 == 0;\n\nassert_eq!(vec.pop_if(pred), Some(4));\nassert_eq!(vec, [1, 2, 3]);\nassert_eq!(vec.pop_if(pred), None);
    \n
    1.4.0 · source

    pub fn append(&mut self, other: &mut Vec<T, A>)

    Moves all the elements of other into self, leaving other empty.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet mut vec2 = vec![4, 5, 6];\nvec.append(&mut vec2);\nassert_eq!(vec, [1, 2, 3, 4, 5, 6]);\nassert_eq!(vec2, []);
    \n
    1.6.0 · source

    pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>
    where\n R: RangeBounds<usize>,

    Removes the specified range from the vector in bulk, returning all\nremoved elements as an iterator. If the iterator is dropped before\nbeing fully consumed, it drops the remaining removed elements.

    \n

    The returned iterator keeps a mutable borrow on the vector to optimize\nits implementation.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Leaking
    \n

    If the returned iterator goes out of scope without being dropped (due to\nmem::forget, for example), the vector may have lost and leaked\nelements arbitrarily, including elements outside the range.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nlet u: Vec<_> = v.drain(1..).collect();\nassert_eq!(v, &[1]);\nassert_eq!(u, &[2, 3]);\n\n// A full range clears the vector, like `clear()` does\nv.drain(..);\nassert_eq!(v, &[]);
    \n
    1.0.0 · source

    pub fn clear(&mut self)

    Clears the vector, removing all values.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\n\nv.clear();\n\nassert!(v.is_empty());
    \n
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the number of elements in the vector, also referred to\nas its ‘length’.

    \n
    §Examples
    \n
    let a = vec![1, 2, 3];\nassert_eq!(a.len(), 3);
    \n
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if the vector contains no elements.

    \n
    §Examples
    \n
    let mut v = Vec::new();\nassert!(v.is_empty());\n\nv.push(1);\nassert!(!v.is_empty());
    \n
    1.4.0 · source

    pub fn split_off(&mut self, at: usize) -> Vec<T, A>
    where\n A: Clone,

    Splits the collection into two at the given index.

    \n

    Returns a newly allocated vector containing the elements in the range\n[at, len). After the call, the original vector will be left containing\nthe elements [0, at) with its previous capacity unchanged.

    \n
      \n
    • If you want to take ownership of the entire contents and capacity of\nthe vector, see mem::take or mem::replace.
    • \n
    • If you don’t need the returned vector at all, see Vec::truncate.
    • \n
    • If you want to take ownership of an arbitrary subslice, or you don’t\nnecessarily want to store the removed items in a vector, see Vec::drain.
    • \n
    \n
    §Panics
    \n

    Panics if at > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);
    \n
    1.33.0 · source

    pub fn resize_with<F>(&mut self, new_len: usize, f: F)
    where\n F: FnMut() -> T,

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with the result of\ncalling the closure f. The return values from f will end up\nin the Vec in the order they have been generated.

    \n

    If new_len is less than len, the Vec is simply truncated.

    \n

    This method uses a closure to create new values on every push. If\nyou’d rather Clone a given value, use Vec::resize. If you\nwant to use the Default trait to generate values, you can\npass Default::default as the second argument.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.resize_with(5, Default::default);\nassert_eq!(vec, [1, 2, 3, 0, 0]);\n\nlet mut vec = vec![];\nlet mut p = 1;\nvec.resize_with(4, || { p *= 2; p });\nassert_eq!(vec, [2, 4, 8, 16]);
    \n
    1.47.0 · source

    pub fn leak<'a>(self) -> &'a mut [T]
    where\n A: 'a,

    Consumes and leaks the Vec, returning a mutable reference to the contents,\n&'a mut [T]. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    As of Rust 1.57, this method does not reallocate or shrink the Vec,\nso the leaked allocation may include unused capacity that is not part\nof the returned slice.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = vec![1, 2, 3];\nlet static_ref: &'static mut [usize] = x.leak();\nstatic_ref[0] += 1;\nassert_eq!(static_ref, &[2, 2, 3]);
    \n
    1.60.0 · source

    pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

    Returns the remaining spare capacity of the vector as a slice of\nMaybeUninit<T>.

    \n

    The returned slice can be used to fill the vector with data (e.g. by\nreading from a file) before marking the data as initialized using the\nset_len method.

    \n
    §Examples
    \n
    // Allocate vector big enough for 10 elements.\nlet mut v = Vec::with_capacity(10);\n\n// Fill in the first 3 elements.\nlet uninit = v.spare_capacity_mut();\nuninit[0].write(0);\nuninit[1].write(1);\nuninit[2].write(2);\n\n// Mark the first 3 elements of the vector as being initialized.\nunsafe {\n    v.set_len(3);\n}\n\nassert_eq!(&v, &[0, 1, 2]);
    \n
    source

    pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

    🔬This is a nightly-only experimental API. (vec_split_at_spare)

    Returns vector content as a slice of T, along with the remaining spare\ncapacity of the vector as a slice of MaybeUninit<T>.

    \n

    The returned spare capacity slice can be used to fill the vector with data\n(e.g. by reading from a file) before marking the data as initialized using\nthe set_len method.

    \n

    Note that this is a low-level API, which should be used with care for\noptimization purposes. If you need to append data to a Vec\nyou can use push, extend, extend_from_slice,\nextend_from_within, insert, append, resize or\nresize_with, depending on your exact needs.

    \n
    §Examples
    \n
    #![feature(vec_split_at_spare)]\n\nlet mut v = vec![1, 1, 2];\n\n// Reserve additional space big enough for 10 elements.\nv.reserve(10);\n\nlet (init, uninit) = v.split_at_spare_mut();\nlet sum = init.iter().copied().sum::<u32>();\n\n// Fill in the next 4 elements.\nuninit[0].write(sum);\nuninit[1].write(sum * 2);\nuninit[2].write(sum * 3);\nuninit[3].write(sum * 4);\n\n// Mark the 4 elements of the vector as being initialized.\nunsafe {\n    let len = v.len();\n    v.set_len(len + 4);\n}\n\nassert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    §

    impl<Z> Zeroize for Vec<Z>
    where\n Z: Zeroize,

    §

    fn zeroize(&mut self)

    “Best effort” zeroization for Vec.

    \n

    Ensures the entire capacity of the Vec is zeroed. Cannot ensure that\nprevious reallocations did not leave values on the heap.

    \n
    ","Zeroize","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> DerefPure for Vec<T, A>
    where\n A: Allocator,

    ","DerefPure","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Eq for Vec<T, A>
    where\n T: Eq,\n A: Allocator,

    ","Eq","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<Z> ZeroizeOnDrop for Vec<Z>
    where\n Z: ZeroizeOnDrop,

    ","ZeroizeOnDrop","jf_merkle_tree::internal::MerklePath"]], -"jf_pcs":[["
    1.5.0 · source§

    impl<T, A> AsMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.5.0 · source§

    impl<T, A> AsMut<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut Vec<T, A>

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> AsRef<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &Vec<T, A>

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Borrow<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> BorrowMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> CanonicalDeserialize for Vec<T>
    where\n T: CanonicalDeserialize,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Vec<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> CanonicalSerialize for Vec<T>
    where\n T: CanonicalSerialize,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Clone for Vec<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone_from(&mut self, source: &Vec<T, A>)

    Overwrites the contents of self with a clone of the contents of source.

    \n

    This method is preferred over simply assigning source.clone() to self,\nas it avoids reallocation if possible. Additionally, if the element type\nT overrides clone_from(), this will reuse the resources of self’s\nelements as well.

    \n
    §Examples
    \n
    let x = vec![5, 6, 7];\nlet mut y = vec![8, 9, 10];\nlet yp: *const i32 = y.as_ptr();\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no reallocation occurred\nassert_eq!(yp, y.as_ptr());
    \n
    source§

    fn clone(&self) -> Vec<T, A>

    Returns a copy of the value. Read more
    ","Clone","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Debug for Vec<T, A>
    where\n T: Debug,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> Default for Vec<T>

    source§

    fn default() -> Vec<T>

    Creates an empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    ","Default","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Deref for Vec<T, A>
    where\n A: Allocator,

    §

    type Target = [T]

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &[T]

    Dereferences the value.
    ","Deref","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Vec<T, A>
    where\n A: Allocator,

    source§

    fn deref_mut(&mut self) -> &mut [T]

    Mutably dereferences the value.
    ","DerefMut","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<'de, T> Deserialize<'de> for Vec<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Vec<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Drop for Vec<T, A>
    where\n A: Allocator,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.2.0 · source§

    impl<'a, T, A> Extend<&'a T> for Vec<T, A>
    where\n T: Copy + 'a,\n A: Allocator,

    Extend implementation that copies elements out of references before pushing them onto the Vec.

    \n

    This implementation is specialized for slice iterators, where it uses copy_from_slice to\nappend the entire slice at once.

    \n
    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = &'a T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, _: &'a T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend<&'a T>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Extend<T> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, item: T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> From<&[T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&[T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&[T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.19.0 · source§

    impl<T> From<&mut [T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&mut [T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&mut [T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&mut [T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.44.0 · source§

    impl<T, const N: usize> From<[T; N]> for Vec<T>

    source§

    fn from(s: [T; N]) -> Vec<T>

    Allocate a Vec<T> and move s’s items into it.

    \n
    §Examples
    \n
    assert_eq!(Vec::from([1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<[T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.5.0 · source§

    impl<T, A> From<BinaryHeap<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(heap: BinaryHeap<T, A>) -> Vec<T, A>

    Converts a BinaryHeap<T> into a Vec<T>.

    \n

    This conversion requires no data movement or allocation, and has\nconstant time complexity.

    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.18.0 · source§

    impl<T, A> From<Box<[T], A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(s: Box<[T], A>) -> Vec<T, A>

    Convert a boxed slice into a vector by transferring ownership of\nthe existing heap allocation.

    \n
    §Examples
    \n
    let b: Box<[i32]> = vec![1, 2, 3].into_boxed_slice();\nassert_eq!(Vec::from(b), vec![1, 2, 3]);
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.14.0 · source§

    impl<'a, T> From<Cow<'a, [T]>> for Vec<T>
    where\n [T]: ToOwned<Owned = Vec<T>>,

    source§

    fn from(s: Cow<'a, [T]>) -> Vec<T>

    Convert a clone-on-write slice into a vector.

    \n

    If s already owns a Vec<T>, it will be returned directly.\nIf s is borrowing a slice, a new Vec<T> will be allocated and\nfilled by cloning s’s items into it.

    \n
    §Examples
    \n
    let o: Cow<'_, [i32]> = Cow::Owned(vec![1, 2, 3]);\nlet b: Cow<'_, [i32]> = Cow::Borrowed(&[1, 2, 3]);\nassert_eq!(Vec::from(o), Vec::from(b));
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.10.0 · source§

    impl<T, A> From<VecDeque<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(other: VecDeque<T, A>) -> Vec<T, A>

    Turn a VecDeque<T> into a Vec<T>.

    \n

    This never needs to re-allocate, but does need to do O(n) data movement if\nthe circular buffer doesn’t happen to be at the beginning of the allocation.

    \n
    §Examples
    \n
    use std::collections::VecDeque;\n\n// This one is *O*(1).\nlet deque: VecDeque<_> = (1..5).collect();\nlet ptr = deque.as_slices().0.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);\n\n// This one needs data rearranging.\nlet mut deque: VecDeque<_> = (1..5).collect();\ndeque.push_front(9);\ndeque.push_front(8);\nlet ptr = deque.as_slices().1.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [8, 9, 1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> FromIterator<T> for Vec<T>

    Collects an iterator into a Vec, commonly called via Iterator::collect()

    \n

    §Allocation behavior

    \n

    In general Vec does not guarantee any particular growth or allocation strategy.\nThat also applies to this trait impl.

    \n

    Note: This section covers implementation details and is therefore exempt from\nstability guarantees.

    \n

    Vec may use any or none of the following strategies,\ndepending on the supplied iterator:

    \n
      \n
    • preallocate based on Iterator::size_hint()\n
        \n
      • and panic if the number of items is outside the provided lower/upper bounds
      • \n
      \n
    • \n
    • use an amortized growth strategy similar to pushing one item at a time
    • \n
    • perform the iteration in-place on the original allocation backing the iterator
    • \n
    \n

    The last case warrants some attention. It is an optimization that in many cases reduces peak memory\nconsumption and improves cache locality. But when big, short-lived allocations are created,\nonly a small fraction of their items get collected, no further use is made of the spare capacity\nand the resulting Vec is moved into a longer-lived structure, then this can lead to the large\nallocations having their lifetimes unnecessarily extended which can result in increased memory\nfootprint.

    \n

    In cases where this is an issue, the excess capacity can be discarded with Vec::shrink_to(),\nVec::shrink_to_fit() or by collecting into Box<[T]> instead, which additionally reduces\nthe size of the long-lived struct.

    \n\n
    static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new());\n\nfor i in 0..10 {\n    let big_temporary: Vec<u16> = (0..1024).collect();\n    // discard most items\n    let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect();\n    // without this a lot of unused capacity might be moved into the global\n    result.shrink_to_fit();\n    LONG_LIVED.lock().unwrap().push(result);\n}
    \n
    source§

    fn from_iter<I>(iter: I) -> Vec<T>
    where\n I: IntoIterator<Item = T>,

    Creates a value from an iterator. Read more
    ","FromIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> FromParallelIterator<T> for Vec<T>
    where\n T: Send,

    Collects items from a parallel iterator into a vector.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Vec<T>
    where\n I: IntoParallelIterator<Item = T>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Hash for Vec<T, A>
    where\n T: Hash,\n A: Allocator,

    The hash of a vector is the same as that of the corresponding slice,\nas required by the core::borrow::Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet v: Vec<u8> = vec![0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(v), b.hash_one(s));
    \n
    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","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, I, A> Index<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    §

    type Output = <I as SliceIndex<[T]>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<Vec<T, A> as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, I, A> IndexMut<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    source§

    fn index_mut(&mut self, index: I) -> &mut <Vec<T, A> as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T>
    where\n T: IntoDeserializer<'de, E>,\n E: Error,

    §

    type Deserializer = SeqDeserializer<<Vec<T> as IntoIterator>::IntoIter, E>

    The type of the deserializer being converted into.
    source§

    fn into_deserializer(self) -> <Vec<T> as IntoDeserializer<'de, E>>::Deserializer

    Convert this value into a deserializer.
    ","IntoDeserializer<'de, E>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> IntoIterator for Vec<T, A>
    where\n A: Allocator,

    source§

    fn into_iter(self) -> <Vec<T, A> as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe vector (from start to end). The vector cannot be used after calling\nthis.

    \n
    §Examples
    \n
    let v = vec![\"a\".to_string(), \"b\".to_string()];\nlet mut v_iter = v.into_iter();\n\nlet first_element: Option<String> = v_iter.next();\n\nassert_eq!(first_element, Some(\"a\".to_string()));\nassert_eq!(v_iter.next(), Some(\"b\".to_string()));\nassert_eq!(v_iter.next(), None);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, A>

    Which kind of iterator are we turning this into?
    ","IntoIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> IntoParallelIterator for Vec<T>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Vec<T> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Ord for Vec<T, A>
    where\n T: Ord,\n A: Allocator,

    Implements ordering of vectors, lexicographically.

    \n
    source§

    fn cmp(&self, other: &Vec<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<'a, T> ParallelExtend<&'a T> for Vec<T>
    where\n T: 'a + Copy + Send + Sync,

    Extends a vector with copied items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = &'a T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend<&'a T>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> ParallelExtend<T> for Vec<T>
    where\n T: Send,

    Extends a vector with items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<&[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&mut [U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.48.0 · source§

    impl<T, U, A> PartialEq<[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A1, A2> PartialEq<Vec<U, A2>> for Vec<T, A1>
    where\n A1: Allocator,\n A2: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &Vec<U, A2>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Vec<U, A2>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A1, A2> PartialOrd<Vec<T, A2>> for Vec<T, A1>
    where\n T: PartialOrd,\n A1: Allocator,\n A2: Allocator,

    Implements comparison of vectors, lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &Vec<T, A2>) -> 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>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T> Serialize for Vec<T>
    where\n T: 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","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> Valid for Vec<T>
    where\n T: Valid,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Vec<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Vec<T>: 'a,

    ","Valid","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T> Vec<T>

    1.0.0 (const: 1.39.0) · source

    pub const fn new() -> Vec<T>

    Constructs a new, empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::new();
    \n
    1.0.0 · source

    pub fn with_capacity(capacity: usize) -> Vec<T>

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<()>::with_capacity(10);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity(capacity: usize) -> Result<Vec<T>, TryReserveError>

    🔬This is a nightly-only experimental API. (try_with_capacity)

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    1.0.0 · source

    pub unsafe fn from_raw_parts(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n) -> Vec<T>

    Creates a Vec<T> directly from a pointer, a length, and a capacity.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must have been allocated using the global allocator, such as via\nthe alloc::alloc function.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to be the capacity that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is normally not safe\nto build a Vec<u8> from a pointer to a C char array with length\nsize_t, doing so is only safe if the array was initially allocated by\na Vec or String.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1. To avoid\nthese issues, it is often preferable to do casting/transmuting using\nslice::from_raw_parts instead.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    use std::ptr;\nuse std::mem;\n\nlet v = vec![1, 2, 3];\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts(p, len, cap);\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    use std::alloc::{alloc, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = alloc(layout).cast::<u32>();\n        if mem.is_null() {\n            return;\n        }\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts(mem, 1, 16)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: Clone,\n A: Allocator,

    1.5.0 · source

    pub fn resize(&mut self, new_len: usize, value: T)

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with value.\nIf new_len is less than len, the Vec is simply truncated.

    \n

    This method requires T to implement Clone,\nin order to be able to clone the passed value.\nIf you need more flexibility (or want to rely on Default instead of\nClone), use Vec::resize_with.\nIf you only need to resize to a smaller size, use Vec::truncate.

    \n
    §Examples
    \n
    let mut vec = vec![\"hello\"];\nvec.resize(3, \"world\");\nassert_eq!(vec, [\"hello\", \"world\", \"world\"]);\n\nlet mut vec = vec![1, 2, 3, 4];\nvec.resize(2, 0);\nassert_eq!(vec, [1, 2]);
    \n
    1.6.0 · source

    pub fn extend_from_slice(&mut self, other: &[T])

    Clones and appends all elements in a slice to the Vec.

    \n

    Iterates over the slice other, clones each element, and then appends\nit to this Vec. The other slice is traversed in-order.

    \n

    Note that this function is same as extend except that it is\nspecialized to work with slices instead. If and when Rust gets\nspecialization this function will likely be deprecated (but still\navailable).

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.extend_from_slice(&[2, 3, 4]);\nassert_eq!(vec, [1, 2, 3, 4]);
    \n
    1.53.0 · source

    pub fn extend_from_within<R>(&mut self, src: R)
    where\n R: RangeBounds<usize>,

    Copies elements from src range to the end of the vector.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut vec = vec![0, 1, 2, 3, 4];\n\nvec.extend_from_within(2..);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]);\n\nvec.extend_from_within(..2);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1]);\n\nvec.extend_from_within(4..8);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: PartialEq,\n A: Allocator,

    1.0.0 · source

    pub fn dedup(&mut self)

    Removes consecutive repeated elements in the vector according to the\nPartialEq trait implementation.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 2, 3, 2];\n\nvec.dedup();\n\nassert_eq!(vec, [1, 2, 3, 2]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    1.21.0 · source

    pub fn splice<R, I>(\n &mut self,\n range: R,\n replace_with: I,\n) -> Splice<'_, <I as IntoIterator>::IntoIter, A>
    where\n R: RangeBounds<usize>,\n I: IntoIterator<Item = T>,

    Creates a splicing iterator that replaces the specified range in the vector\nwith the given replace_with iterator and yields the removed items.\nreplace_with does not need to be the same length as range.

    \n

    range is removed even if the iterator is not consumed until the end.

    \n

    It is unspecified how many elements are removed from the vector\nif the Splice value is leaked.

    \n

    The input iterator replace_with is only consumed when the Splice value is dropped.

    \n

    This is optimal if:

    \n
      \n
    • The tail (elements in the vector after range) is empty,
    • \n
    • or replace_with yields fewer or equal elements than range’s length
    • \n
    • or the lower bound of its size_hint() is exact.
    • \n
    \n

    Otherwise, a temporary vector is allocated and the tail is moved twice.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3, 4];\nlet new = [7, 8, 9];\nlet u: Vec<_> = v.splice(1..3, new).collect();\nassert_eq!(v, &[1, 7, 8, 9, 4]);\nassert_eq!(u, &[2, 3]);
    \n
    source

    pub fn extract_if<F>(&mut self, filter: F) -> ExtractIf<'_, T, F, A>
    where\n F: FnMut(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (extract_if)

    Creates an iterator which uses a closure to determine if an element should be removed.

    \n

    If the closure returns true, then the element is removed and yielded.\nIf the closure returns false, the element will remain in the vector and will not be yielded\nby the iterator.

    \n

    If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

    \n

    Using this method is equivalent to the following code:

    \n\n
    let mut i = 0;\nwhile i < vec.len() {\n    if some_predicate(&mut vec[i]) {\n        let val = vec.remove(i);\n        // your code here\n    } else {\n        i += 1;\n    }\n}\n
    \n

    But extract_if is easier to use. extract_if is also more efficient,\nbecause it can backshift the elements of the array in bulk.

    \n

    Note that extract_if also lets you mutate every element in the filter closure,\nregardless of whether you choose to keep or remove it.

    \n
    §Examples
    \n

    Splitting an array into evens and odds, reusing the original allocation:

    \n\n
    #![feature(extract_if)]\nlet mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15];\n\nlet evens = numbers.extract_if(|x| *x % 2 == 0).collect::<Vec<_>>();\nlet odds = numbers;\n\nassert_eq!(evens, vec![2, 4, 6, 8, 14]);\nassert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    source

    pub const fn new_in(alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec: Vec<i32, _> = Vec::new_in(System);
    \n
    source

    pub fn with_capacity_in(capacity: usize, alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T, A> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec = Vec::with_capacity_in(10, System);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<(), System>::with_capacity_in(10, System);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity_in(\n capacity: usize,\n alloc: A,\n) -> Result<Vec<T, A>, TryReserveError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    source

    pub unsafe fn from_raw_parts_in(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n alloc: A,\n) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Creates a Vec<T, A> directly from a pointer, a length, a capacity,\nand an allocator.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must be currently allocated via the given allocator alloc.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to fit the layout size that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T, A>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is not safe\nto build a Vec<u8> from a pointer to a C char array with length size_t.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nuse std::ptr;\nuse std::mem;\n\nlet mut v = Vec::with_capacity_in(3, System);\nv.push(1);\nv.push(2);\nv.push(3);\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\nlet alloc = v.allocator();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts_in(p, len, cap, alloc.clone());\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{AllocError, Allocator, Global, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = match Global.allocate(layout) {\n            Ok(mem) => mem.cast::<u32>().as_ptr(),\n            Err(AllocError) => return,\n        };\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts_in(mem, 1, 16, Global)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    source

    pub fn into_raw_parts(self) -> (*mut T, usize, usize)

    🔬This is a nightly-only experimental API. (vec_into_raw_parts)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity).

    \n

    Returns the raw pointer to the underlying data, the length of\nthe vector (in elements), and the allocated capacity of the\ndata (in elements). These are the same arguments in the same\norder as the arguments to from_raw_parts.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(vec_into_raw_parts)]\nlet v: Vec<i32> = vec![-1, 0, 1];\n\nlet (ptr, len, cap) = v.into_raw_parts();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts(ptr, len, cap)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    source

    pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity, allocator).

    \n

    Returns the raw pointer to the underlying data, the length of the vector (in elements),\nthe allocated capacity of the data (in elements), and the allocator. These are the same\narguments in the same order as the arguments to from_raw_parts_in.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts_in function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(allocator_api, vec_into_raw_parts)]\n\nuse std::alloc::System;\n\nlet mut v: Vec<i32, System> = Vec::new_in(System);\nv.push(-1);\nv.push(0);\nv.push(1);\n\nlet (ptr, len, cap, alloc) = v.into_raw_parts_with_alloc();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts_in(ptr, len, cap, alloc)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns the total number of elements the vector can hold without\nreallocating.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::with_capacity(10);\nvec.push(42);\nassert!(vec.capacity() >= 10);
    \n
    1.0.0 · source

    pub fn reserve(&mut self, additional: usize)

    Reserves capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to\nspeculatively avoid frequent reallocations. After calling reserve,\ncapacity will be greater than or equal to self.len() + additional.\nDoes nothing if capacity is already sufficient.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve(10);\nassert!(vec.capacity() >= 11);
    \n
    1.0.0 · source

    pub fn reserve_exact(&mut self, additional: usize)

    Reserves the minimum capacity for at least additional more elements to\nbe inserted in the given Vec<T>. Unlike reserve, this will not\ndeliberately over-allocate to speculatively avoid frequent allocations.\nAfter calling reserve_exact, capacity will be greater than or equal to\nself.len() + additional. Does nothing if the capacity is already\nsufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer reserve if future insertions are expected.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve_exact(10);\nassert!(vec.capacity() >= 11);
    \n
    1.57.0 · source

    pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

    Tries to reserve capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to speculatively avoid\nfrequent reallocations. After calling try_reserve, capacity will be\ngreater than or equal to self.len() + additional if it returns\nOk(()). Does nothing if capacity is already sufficient. This method\npreserves the contents even if an error occurs.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.57.0 · source

    pub fn try_reserve_exact(\n &mut self,\n additional: usize,\n) -> Result<(), TryReserveError>

    Tries to reserve the minimum capacity for at least additional\nelements to be inserted in the given Vec<T>. Unlike try_reserve,\nthis will not deliberately over-allocate to speculatively avoid frequent\nallocations. After calling try_reserve_exact, capacity will be greater\nthan or equal to self.len() + additional if it returns Ok(()).\nDoes nothing if the capacity is already sufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer try_reserve if future insertions are expected.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve_exact(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.0.0 · source

    pub fn shrink_to_fit(&mut self)

    Shrinks the capacity of the vector as much as possible.

    \n

    The behavior of this method depends on the allocator, which may either shrink the vector\nin-place or reallocate. The resulting vector might still have some excess capacity, just as\nis the case for with_capacity. See Allocator::shrink for more details.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to_fit();\nassert!(vec.capacity() >= 3);
    \n
    1.56.0 · source

    pub fn shrink_to(&mut self, min_capacity: usize)

    Shrinks the capacity of the vector with a lower bound.

    \n

    The capacity will remain at least as large as both the length\nand the supplied value.

    \n

    If the current capacity is less than the lower limit, this is a no-op.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to(4);\nassert!(vec.capacity() >= 4);\nvec.shrink_to(0);\nassert!(vec.capacity() >= 3);
    \n
    1.0.0 · source

    pub fn into_boxed_slice(self) -> Box<[T], A>

    Converts the vector into Box<[T]>.

    \n

    Before doing the conversion, this method discards excess capacity like shrink_to_fit.

    \n
    §Examples
    \n
    let v = vec![1, 2, 3];\n\nlet slice = v.into_boxed_slice();
    \n

    Any excess capacity is removed:

    \n\n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\n\nassert!(vec.capacity() >= 10);\nlet slice = vec.into_boxed_slice();\nassert_eq!(slice.into_vec().capacity(), 3);
    \n
    1.0.0 · source

    pub fn truncate(&mut self, len: usize)

    Shortens the vector, keeping the first len elements and dropping\nthe rest.

    \n

    If len is greater or equal to the vector’s current length, this has\nno effect.

    \n

    The drain method can emulate truncate, but causes the excess\nelements to be returned instead of dropped.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n

    Truncating a five element vector to two elements:

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nvec.truncate(2);\nassert_eq!(vec, [1, 2]);
    \n

    No truncation occurs when len is greater than the vector’s current\nlength:

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(8);\nassert_eq!(vec, [1, 2, 3]);
    \n

    Truncating when len == 0 is equivalent to calling the clear\nmethod.

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(0);\nassert_eq!(vec, []);
    \n
    1.7.0 · source

    pub fn as_slice(&self) -> &[T]

    Extracts a slice containing the entire vector.

    \n

    Equivalent to &s[..].

    \n
    §Examples
    \n
    use std::io::{self, Write};\nlet buffer = vec![1, 2, 3, 5, 8];\nio::sink().write(buffer.as_slice()).unwrap();
    \n
    1.7.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Extracts a mutable slice of the entire vector.

    \n

    Equivalent to &mut s[..].

    \n
    §Examples
    \n
    use std::io::{self, Read};\nlet mut buffer = vec![0; 3];\nio::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
    \n
    1.37.0 · source

    pub fn as_ptr(&self) -> *const T

    Returns a raw pointer to the vector’s buffer, or a dangling raw pointer\nvalid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the slice,\nor mutable references to specific elements you are planning on accessing through this pointer,\nas well as writing to those elements, may still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    let x = vec![1, 2, 4];\nlet x_ptr = x.as_ptr();\n\nunsafe {\n    for i in 0..x.len() {\n        assert_eq!(*x_ptr.add(i), 1 << i);\n    }\n}
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0, 1, 2];\n    let ptr1 = v.as_ptr();\n    let _ = ptr1.read();\n    let ptr2 = v.as_mut_ptr().offset(2);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`\n    // because it mutated a different element:\n    let _ = ptr1.read();\n}
    \n
    1.37.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut T

    Returns an unsafe mutable pointer to the vector’s buffer, or a dangling\nraw pointer valid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the slice,\nor references to specific elements you are planning on accessing through this pointer,\nmay still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    // Allocate vector big enough for 4 elements.\nlet size = 4;\nlet mut x: Vec<i32> = Vec::with_capacity(size);\nlet x_ptr = x.as_mut_ptr();\n\n// Initialize elements via raw pointer writes, then set length.\nunsafe {\n    for i in 0..size {\n        *x_ptr.add(i) = i as i32;\n    }\n    x.set_len(size);\n}\nassert_eq!(&*x, &[0, 1, 2, 3]);
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0];\n    let ptr1 = v.as_mut_ptr();\n    ptr1.write(1);\n    let ptr2 = v.as_mut_ptr();\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    source

    pub fn allocator(&self) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n
    1.0.0 · source

    pub unsafe fn set_len(&mut self, new_len: usize)

    Forces the length of the vector to new_len.

    \n

    This is a low-level operation that maintains none of the normal\ninvariants of the type. Normally changing the length of a vector\nis done using one of the safe operations instead, such as\ntruncate, resize, extend, or clear.

    \n
    §Safety
    \n
      \n
    • new_len must be less than or equal to capacity().
    • \n
    • The elements at old_len..new_len must be initialized.
    • \n
    \n
    §Examples
    \n

    This method can be useful for situations in which the vector\nis serving as a buffer for other code, particularly over FFI:

    \n\n
    pub fn get_dictionary(&self) -> Option<Vec<u8>> {\n    // Per the FFI method's docs, \"32768 bytes is always enough\".\n    let mut dict = Vec::with_capacity(32_768);\n    let mut dict_length = 0;\n    // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that:\n    // 1. `dict_length` elements were initialized.\n    // 2. `dict_length` <= the capacity (32_768)\n    // which makes `set_len` safe to call.\n    unsafe {\n        // Make the FFI call...\n        let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length);\n        if r == Z_OK {\n            // ...and update the length to what was initialized.\n            dict.set_len(dict_length);\n            Some(dict)\n        } else {\n            None\n        }\n    }\n}
    \n

    While the following example is sound, there is a memory leak since\nthe inner vectors were not freed prior to the set_len call:

    \n\n
    let mut vec = vec![vec![1, 0, 0],\n                   vec![0, 1, 0],\n                   vec![0, 0, 1]];\n// SAFETY:\n// 1. `old_len..0` is empty so no elements need to be initialized.\n// 2. `0 <= capacity` always holds whatever `capacity` is.\nunsafe {\n    vec.set_len(0);\n}
    \n

    Normally, here, one would use clear instead to correctly drop\nthe contents and thus not leak memory.

    \n
    1.0.0 · source

    pub fn swap_remove(&mut self, index: usize) -> T

    Removes an element from the vector and returns it.

    \n

    The removed element is replaced by the last element of the vector.

    \n

    This does not preserve ordering of the remaining elements, but is O(1).\nIf you need to preserve the element order, use remove instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![\"foo\", \"bar\", \"baz\", \"qux\"];\n\nassert_eq!(v.swap_remove(1), \"bar\");\nassert_eq!(v, [\"foo\", \"qux\", \"baz\"]);\n\nassert_eq!(v.swap_remove(0), \"foo\");\nassert_eq!(v, [\"baz\", \"qux\"]);
    \n
    1.0.0 · source

    pub fn insert(&mut self, index: usize, element: T)

    Inserts an element at position index within the vector, shifting all\nelements after it to the right.

    \n
    §Panics
    \n

    Panics if index > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.insert(1, 4);\nassert_eq!(vec, [1, 4, 2, 3]);\nvec.insert(4, 5);\nassert_eq!(vec, [1, 4, 2, 3, 5]);
    \n
    §Time complexity
    \n

    Takes O(Vec::len) time. All items after the insertion index must be\nshifted to the right. In the worst case, all elements are shifted when\nthe insertion index is 0.

    \n
    1.0.0 · source

    pub fn remove(&mut self, index: usize) -> T

    Removes and returns the element at position index within the vector,\nshifting all elements after it to the left.

    \n

    Note: Because this shifts over the remaining elements, it has a\nworst-case performance of O(n). If you don’t need the order of elements\nto be preserved, use swap_remove instead. If you’d like to remove\nelements from the beginning of the Vec, consider using\nVecDeque::pop_front instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nassert_eq!(v.remove(1), 2);\nassert_eq!(v, [1, 3]);
    \n
    1.0.0 · source

    pub fn retain<F>(&mut self, f: F)
    where\n F: FnMut(&T) -> bool,

    Retains only the elements specified by the predicate.

    \n

    In other words, remove all elements e for which f(&e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain(|&x| x % 2 == 0);\nassert_eq!(vec, [2, 4]);
    \n

    Because the elements are visited exactly once in the original order,\nexternal state may be used to decide which elements to keep.

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nlet keep = [false, true, true, false, true];\nlet mut iter = keep.iter();\nvec.retain(|_| *iter.next().unwrap());\nassert_eq!(vec, [2, 3, 5]);
    \n
    1.61.0 · source

    pub fn retain_mut<F>(&mut self, f: F)
    where\n F: FnMut(&mut T) -> bool,

    Retains only the elements specified by the predicate, passing a mutable reference to it.

    \n

    In other words, remove all elements e such that f(&mut e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain_mut(|x| if *x <= 3 {\n    *x += 1;\n    true\n} else {\n    false\n});\nassert_eq!(vec, [2, 3, 4]);
    \n
    1.16.0 · source

    pub fn dedup_by_key<F, K>(&mut self, key: F)
    where\n F: FnMut(&mut T) -> K,\n K: PartialEq,

    Removes all but the first of consecutive elements in the vector that resolve to the same\nkey.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![10, 20, 21, 30, 20];\n\nvec.dedup_by_key(|i| *i / 10);\n\nassert_eq!(vec, [10, 20, 30, 20]);
    \n
    1.16.0 · source

    pub fn dedup_by<F>(&mut self, same_bucket: F)
    where\n F: FnMut(&mut T, &mut T) -> bool,

    Removes all but the first of consecutive elements in the vector satisfying a given equality\nrelation.

    \n

    The same_bucket function is passed references to two elements from the vector and\nmust determine if the elements compare equal. The elements are passed in opposite order\nfrom their order in the slice, so if same_bucket(a, b) returns true, a is removed.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![\"foo\", \"bar\", \"Bar\", \"baz\", \"bar\"];\n\nvec.dedup_by(|a, b| a.eq_ignore_ascii_case(b));\n\nassert_eq!(vec, [\"foo\", \"bar\", \"baz\", \"bar\"]);
    \n
    1.0.0 · source

    pub fn push(&mut self, value: T)

    Appends an element to the back of a collection.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2];\nvec.push(3);\nassert_eq!(vec, [1, 2, 3]);
    \n
    §Time complexity
    \n

    Takes amortized O(1) time. If the vector’s length would exceed its\ncapacity after the push, O(capacity) time is taken to copy the\nvector’s elements to a larger allocation. This expensive operation is\noffset by the capacity O(1) insertions it allows.

    \n
    source

    pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

    🔬This is a nightly-only experimental API. (vec_push_within_capacity)

    Appends an element if there is sufficient spare capacity, otherwise an error is returned\nwith the element.

    \n

    Unlike push this method will not reallocate when there’s insufficient capacity.\nThe caller should use reserve or try_reserve to ensure that there is enough capacity.

    \n
    §Examples
    \n

    A manual, panic-free alternative to FromIterator:

    \n\n
    #![feature(vec_push_within_capacity)]\n\nuse std::collections::TryReserveError;\nfn from_iter_fallible<T>(iter: impl Iterator<Item=T>) -> Result<Vec<T>, TryReserveError> {\n    let mut vec = Vec::new();\n    for value in iter {\n        if let Err(value) = vec.push_within_capacity(value) {\n            vec.try_reserve(1)?;\n            // this cannot fail, the previous line either returned or added at least 1 free slot\n            let _ = vec.push_within_capacity(value);\n        }\n    }\n    Ok(vec)\n}\nassert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100)));
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    1.0.0 · source

    pub fn pop(&mut self) -> Option<T>

    Removes the last element from a vector and returns it, or None if it\nis empty.

    \n

    If you’d like to pop the first element, consider using\nVecDeque::pop_front instead.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nassert_eq!(vec.pop(), Some(3));\nassert_eq!(vec, [1, 2]);
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    source

    pub fn pop_if<F>(&mut self, f: F) -> Option<T>
    where\n F: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (vec_pop_if)

    Removes and returns the last element in a vector if the predicate\nreturns true, or None if the predicate returns false or the vector\nis empty.

    \n
    §Examples
    \n
    #![feature(vec_pop_if)]\n\nlet mut vec = vec![1, 2, 3, 4];\nlet pred = |x: &mut i32| *x % 2 == 0;\n\nassert_eq!(vec.pop_if(pred), Some(4));\nassert_eq!(vec, [1, 2, 3]);\nassert_eq!(vec.pop_if(pred), None);
    \n
    1.4.0 · source

    pub fn append(&mut self, other: &mut Vec<T, A>)

    Moves all the elements of other into self, leaving other empty.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet mut vec2 = vec![4, 5, 6];\nvec.append(&mut vec2);\nassert_eq!(vec, [1, 2, 3, 4, 5, 6]);\nassert_eq!(vec2, []);
    \n
    1.6.0 · source

    pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>
    where\n R: RangeBounds<usize>,

    Removes the specified range from the vector in bulk, returning all\nremoved elements as an iterator. If the iterator is dropped before\nbeing fully consumed, it drops the remaining removed elements.

    \n

    The returned iterator keeps a mutable borrow on the vector to optimize\nits implementation.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Leaking
    \n

    If the returned iterator goes out of scope without being dropped (due to\nmem::forget, for example), the vector may have lost and leaked\nelements arbitrarily, including elements outside the range.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nlet u: Vec<_> = v.drain(1..).collect();\nassert_eq!(v, &[1]);\nassert_eq!(u, &[2, 3]);\n\n// A full range clears the vector, like `clear()` does\nv.drain(..);\nassert_eq!(v, &[]);
    \n
    1.0.0 · source

    pub fn clear(&mut self)

    Clears the vector, removing all values.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\n\nv.clear();\n\nassert!(v.is_empty());
    \n
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the number of elements in the vector, also referred to\nas its ‘length’.

    \n
    §Examples
    \n
    let a = vec![1, 2, 3];\nassert_eq!(a.len(), 3);
    \n
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if the vector contains no elements.

    \n
    §Examples
    \n
    let mut v = Vec::new();\nassert!(v.is_empty());\n\nv.push(1);\nassert!(!v.is_empty());
    \n
    1.4.0 · source

    pub fn split_off(&mut self, at: usize) -> Vec<T, A>
    where\n A: Clone,

    Splits the collection into two at the given index.

    \n

    Returns a newly allocated vector containing the elements in the range\n[at, len). After the call, the original vector will be left containing\nthe elements [0, at) with its previous capacity unchanged.

    \n
      \n
    • If you want to take ownership of the entire contents and capacity of\nthe vector, see mem::take or mem::replace.
    • \n
    • If you don’t need the returned vector at all, see Vec::truncate.
    • \n
    • If you want to take ownership of an arbitrary subslice, or you don’t\nnecessarily want to store the removed items in a vector, see Vec::drain.
    • \n
    \n
    §Panics
    \n

    Panics if at > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);
    \n
    1.33.0 · source

    pub fn resize_with<F>(&mut self, new_len: usize, f: F)
    where\n F: FnMut() -> T,

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with the result of\ncalling the closure f. The return values from f will end up\nin the Vec in the order they have been generated.

    \n

    If new_len is less than len, the Vec is simply truncated.

    \n

    This method uses a closure to create new values on every push. If\nyou’d rather Clone a given value, use Vec::resize. If you\nwant to use the Default trait to generate values, you can\npass Default::default as the second argument.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.resize_with(5, Default::default);\nassert_eq!(vec, [1, 2, 3, 0, 0]);\n\nlet mut vec = vec![];\nlet mut p = 1;\nvec.resize_with(4, || { p *= 2; p });\nassert_eq!(vec, [2, 4, 8, 16]);
    \n
    1.47.0 · source

    pub fn leak<'a>(self) -> &'a mut [T]
    where\n A: 'a,

    Consumes and leaks the Vec, returning a mutable reference to the contents,\n&'a mut [T]. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    As of Rust 1.57, this method does not reallocate or shrink the Vec,\nso the leaked allocation may include unused capacity that is not part\nof the returned slice.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = vec![1, 2, 3];\nlet static_ref: &'static mut [usize] = x.leak();\nstatic_ref[0] += 1;\nassert_eq!(static_ref, &[2, 2, 3]);
    \n
    1.60.0 · source

    pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

    Returns the remaining spare capacity of the vector as a slice of\nMaybeUninit<T>.

    \n

    The returned slice can be used to fill the vector with data (e.g. by\nreading from a file) before marking the data as initialized using the\nset_len method.

    \n
    §Examples
    \n
    // Allocate vector big enough for 10 elements.\nlet mut v = Vec::with_capacity(10);\n\n// Fill in the first 3 elements.\nlet uninit = v.spare_capacity_mut();\nuninit[0].write(0);\nuninit[1].write(1);\nuninit[2].write(2);\n\n// Mark the first 3 elements of the vector as being initialized.\nunsafe {\n    v.set_len(3);\n}\n\nassert_eq!(&v, &[0, 1, 2]);
    \n
    source

    pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

    🔬This is a nightly-only experimental API. (vec_split_at_spare)

    Returns vector content as a slice of T, along with the remaining spare\ncapacity of the vector as a slice of MaybeUninit<T>.

    \n

    The returned spare capacity slice can be used to fill the vector with data\n(e.g. by reading from a file) before marking the data as initialized using\nthe set_len method.

    \n

    Note that this is a low-level API, which should be used with care for\noptimization purposes. If you need to append data to a Vec\nyou can use push, extend, extend_from_slice,\nextend_from_within, insert, append, resize or\nresize_with, depending on your exact needs.

    \n
    §Examples
    \n
    #![feature(vec_split_at_spare)]\n\nlet mut v = vec![1, 1, 2];\n\n// Reserve additional space big enough for 10 elements.\nv.reserve(10);\n\nlet (init, uninit) = v.split_at_spare_mut();\nlet sum = init.iter().copied().sum::<u32>();\n\n// Fill in the next 4 elements.\nuninit[0].write(sum);\nuninit[1].write(sum * 2);\nuninit[2].write(sum * 3);\nuninit[3].write(sum * 4);\n\n// Mark the 4 elements of the vector as being initialized.\nunsafe {\n    let len = v.len();\n    v.set_len(len + 4);\n}\n\nassert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<Z> Zeroize for Vec<Z>
    where\n Z: Zeroize,

    §

    fn zeroize(&mut self)

    “Best effort” zeroization for Vec.

    \n

    Ensures the entire capacity of the Vec is zeroed. Cannot ensure that\nprevious reallocations did not leave values on the heap.

    \n
    ","Zeroize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> DerefPure for Vec<T, A>
    where\n A: Allocator,

    ","DerefPure","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Eq for Vec<T, A>
    where\n T: Eq,\n A: Allocator,

    ","Eq","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<Z> ZeroizeOnDrop for Vec<Z>
    where\n Z: ZeroizeOnDrop,

    ","ZeroizeOnDrop","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"]] +"jf_merkle_tree":[["
    §

    impl<A> Absorb for Vec<A>
    where\n A: Absorb,

    §

    fn to_sponge_bytes(&self, dest: &mut Vec<u8>)

    Converts the object into a list of bytes that can be absorbed by a CryptographicSponge.\nAppend the list to dest.
    §

    fn to_sponge_field_elements<F>(&self, dest: &mut Vec<F>)
    where\n F: PrimeField,

    Converts the object into field elements that can be absorbed by a CryptographicSponge.\nAppend the list to dest
    §

    fn to_sponge_bytes_as_vec(&self) -> Vec<u8>

    Converts the object into a list of bytes that can be absorbed by a CryptographicSponge.\nReturn the list as Vec.
    §

    fn to_sponge_field_elements_as_vec<F>(&self) -> Vec<F>
    where\n F: PrimeField,

    Converts the object into field elements that can be absorbed by a CryptographicSponge.\nReturn the list as Vec
    §

    fn batch_to_sponge_bytes(batch: &[Self], dest: &mut Vec<u8>)
    where\n Self: Sized,

    Specifies the conversion into a list of bytes for a batch. Append the list to dest.
    §

    fn batch_to_sponge_bytes_as_vec(batch: &[Self]) -> Vec<u8>
    where\n Self: Sized,

    Specifies the conversion into a list of bytes for a batch. Return the list as Vec.
    §

    fn batch_to_sponge_field_elements<F>(batch: &[Self], dest: &mut Vec<F>)
    where\n F: PrimeField,\n Self: Sized,

    Specifies the conversion into a list of field elements for a batch. Append the list to dest.
    §

    fn batch_to_sponge_field_elements_as_vec<F>(batch: &[Self]) -> Vec<F>
    where\n F: PrimeField,\n Self: Sized,

    Specifies the conversion into a list of field elements for a batch. Append the list to dest.
    ","Absorb","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<A> AbsorbWithLength for Vec<A>
    where\n A: Absorb,

    §

    fn absorb_length(&self) -> usize

    The length of the self being absorbed.
    §

    fn to_sponge_bytes_with_length(&self, dest: &mut Vec<u8>)

    Converts the object into a list of bytes along with its length information\nthat can be absorbed by a CryptographicSponge.\nAppend the list to dest.
    §

    fn to_sponge_field_elements_with_length<F>(&self, dest: &mut Vec<F>)
    where\n F: PrimeField,

    Converts the object into field elements along with its length information\nthat can be absorbed by a CryptographicSponge.\nAppend the list to dest
    ","AbsorbWithLength","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> AsMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> AsMut<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut Vec<T, A>

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> AsRef<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &Vec<T, A>

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Borrow<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> BorrowMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> CanonicalDeserialize for Vec<T>
    where\n T: CanonicalDeserialize,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Vec<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> CanonicalSerialize for Vec<T>
    where\n T: CanonicalSerialize,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Clone for Vec<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone_from(&mut self, source: &Vec<T, A>)

    Overwrites the contents of self with a clone of the contents of source.

    \n

    This method is preferred over simply assigning source.clone() to self,\nas it avoids reallocation if possible. Additionally, if the element type\nT overrides clone_from(), this will reuse the resources of self’s\nelements as well.

    \n
    §Examples
    \n
    let x = vec![5, 6, 7];\nlet mut y = vec![8, 9, 10];\nlet yp: *const i32 = y.as_ptr();\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no reallocation occurred\nassert_eq!(yp, y.as_ptr());
    \n
    source§

    fn clone(&self) -> Vec<T, A>

    Returns a copy of the value. Read more
    ","Clone","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Debug for Vec<T, A>
    where\n T: Debug,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> Default for Vec<T>

    source§

    fn default() -> Vec<T>

    Creates an empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    ","Default","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Deref for Vec<T, A>
    where\n A: Allocator,

    §

    type Target = [T]

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &[T]

    Dereferences the value.
    ","Deref","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Vec<T, A>
    where\n A: Allocator,

    source§

    fn deref_mut(&mut self) -> &mut [T]

    Mutably dereferences the value.
    ","DerefMut","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<'de, T> Deserialize<'de> for Vec<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Vec<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Drop for Vec<T, A>
    where\n A: Allocator,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","jf_merkle_tree::internal::MerklePath"],["
    1.2.0 · source§

    impl<'a, T, A> Extend<&'a T> for Vec<T, A>
    where\n T: Copy + 'a,\n A: Allocator,

    Extend implementation that copies elements out of references before pushing them onto the Vec.

    \n

    This implementation is specialized for slice iterators, where it uses copy_from_slice to\nappend the entire slice at once.

    \n
    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = &'a T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, _: &'a T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend<&'a T>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Extend<T> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, item: T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> From<&[T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&[T]>","jf_merkle_tree::internal::MerklePath"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&[T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&[T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.19.0 · source§

    impl<T> From<&mut [T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&mut [T]>","jf_merkle_tree::internal::MerklePath"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&mut [T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&mut [T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.44.0 · source§

    impl<T, const N: usize> From<[T; N]> for Vec<T>

    source§

    fn from(s: [T; N]) -> Vec<T>

    Allocate a Vec<T> and move s’s items into it.

    \n
    §Examples
    \n
    assert_eq!(Vec::from([1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<[T; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.5.0 · source§

    impl<T, A> From<BinaryHeap<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(heap: BinaryHeap<T, A>) -> Vec<T, A>

    Converts a BinaryHeap<T> into a Vec<T>.

    \n

    This conversion requires no data movement or allocation, and has\nconstant time complexity.

    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.18.0 · source§

    impl<T, A> From<Box<[T], A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(s: Box<[T], A>) -> Vec<T, A>

    Convert a boxed slice into a vector by transferring ownership of\nthe existing heap allocation.

    \n
    §Examples
    \n
    let b: Box<[i32]> = vec![1, 2, 3].into_boxed_slice();\nassert_eq!(Vec::from(b), vec![1, 2, 3]);
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.14.0 · source§

    impl<'a, T> From<Cow<'a, [T]>> for Vec<T>
    where\n [T]: ToOwned<Owned = Vec<T>>,

    source§

    fn from(s: Cow<'a, [T]>) -> Vec<T>

    Convert a clone-on-write slice into a vector.

    \n

    If s already owns a Vec<T>, it will be returned directly.\nIf s is borrowing a slice, a new Vec<T> will be allocated and\nfilled by cloning s’s items into it.

    \n
    §Examples
    \n
    let o: Cow<'_, [i32]> = Cow::Owned(vec![1, 2, 3]);\nlet b: Cow<'_, [i32]> = Cow::Borrowed(&[1, 2, 3]);\nassert_eq!(Vec::from(o), Vec::from(b));
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.10.0 · source§

    impl<T, A> From<VecDeque<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(other: VecDeque<T, A>) -> Vec<T, A>

    Turn a VecDeque<T> into a Vec<T>.

    \n

    This never needs to re-allocate, but does need to do O(n) data movement if\nthe circular buffer doesn’t happen to be at the beginning of the allocation.

    \n
    §Examples
    \n
    use std::collections::VecDeque;\n\n// This one is *O*(1).\nlet deque: VecDeque<_> = (1..5).collect();\nlet ptr = deque.as_slices().0.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);\n\n// This one needs data rearranging.\nlet mut deque: VecDeque<_> = (1..5).collect();\ndeque.push_front(9);\ndeque.push_front(8);\nlet ptr = deque.as_slices().1.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [8, 9, 1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);
    \n
    ","From>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T> FromIterator<T> for Vec<T>

    Collects an iterator into a Vec, commonly called via Iterator::collect()

    \n

    §Allocation behavior

    \n

    In general Vec does not guarantee any particular growth or allocation strategy.\nThat also applies to this trait impl.

    \n

    Note: This section covers implementation details and is therefore exempt from\nstability guarantees.

    \n

    Vec may use any or none of the following strategies,\ndepending on the supplied iterator:

    \n
      \n
    • preallocate based on Iterator::size_hint()\n
        \n
      • and panic if the number of items is outside the provided lower/upper bounds
      • \n
      \n
    • \n
    • use an amortized growth strategy similar to pushing one item at a time
    • \n
    • perform the iteration in-place on the original allocation backing the iterator
    • \n
    \n

    The last case warrants some attention. It is an optimization that in many cases reduces peak memory\nconsumption and improves cache locality. But when big, short-lived allocations are created,\nonly a small fraction of their items get collected, no further use is made of the spare capacity\nand the resulting Vec is moved into a longer-lived structure, then this can lead to the large\nallocations having their lifetimes unnecessarily extended which can result in increased memory\nfootprint.

    \n

    In cases where this is an issue, the excess capacity can be discarded with Vec::shrink_to(),\nVec::shrink_to_fit() or by collecting into Box<[T]> instead, which additionally reduces\nthe size of the long-lived struct.

    \n\n
    static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new());\n\nfor i in 0..10 {\n    let big_temporary: Vec<u16> = (0..1024).collect();\n    // discard most items\n    let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect();\n    // without this a lot of unused capacity might be moved into the global\n    result.shrink_to_fit();\n    LONG_LIVED.lock().unwrap().push(result);\n}
    \n
    source§

    fn from_iter<I>(iter: I) -> Vec<T>
    where\n I: IntoIterator<Item = T>,

    Creates a value from an iterator. Read more
    ","FromIterator","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> FromParallelIterator<T> for Vec<T>
    where\n T: Send,

    Collects items from a parallel iterator into a vector.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Vec<T>
    where\n I: IntoParallelIterator<Item = T>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Hash for Vec<T, A>
    where\n T: Hash,\n A: Allocator,

    The hash of a vector is the same as that of the corresponding slice,\nas required by the core::borrow::Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet v: Vec<u8> = vec![0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(v), b.hash_one(s));
    \n
    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","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, I, A> Index<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    §

    type Output = <I as SliceIndex<[T]>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<Vec<T, A> as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, I, A> IndexMut<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    source§

    fn index_mut(&mut self, index: I) -> &mut <Vec<T, A> as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T>
    where\n T: IntoDeserializer<'de, E>,\n E: Error,

    §

    type Deserializer = SeqDeserializer<<Vec<T> as IntoIterator>::IntoIter, E>

    The type of the deserializer being converted into.
    source§

    fn into_deserializer(self) -> <Vec<T> as IntoDeserializer<'de, E>>::Deserializer

    Convert this value into a deserializer.
    ","IntoDeserializer<'de, E>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> IntoIterator for Vec<T, A>
    where\n A: Allocator,

    source§

    fn into_iter(self) -> <Vec<T, A> as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe vector (from start to end). The vector cannot be used after calling\nthis.

    \n
    §Examples
    \n
    let v = vec![\"a\".to_string(), \"b\".to_string()];\nlet mut v_iter = v.into_iter();\n\nlet first_element: Option<String> = v_iter.next();\n\nassert_eq!(first_element, Some(\"a\".to_string()));\nassert_eq!(v_iter.next(), Some(\"b\".to_string()));\nassert_eq!(v_iter.next(), None);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, A>

    Which kind of iterator are we turning this into?
    ","IntoIterator","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> IntoParallelIterator for Vec<T>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Vec<T> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Ord for Vec<T, A>
    where\n T: Ord,\n A: Allocator,

    Implements ordering of vectors, lexicographically.

    \n
    source§

    fn cmp(&self, other: &Vec<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<'a, T> ParallelExtend<&'a T> for Vec<T>
    where\n T: 'a + Copy + Send + Sync,

    Extends a vector with copied items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = &'a T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend<&'a T>","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> ParallelExtend<T> for Vec<T>
    where\n T: Send,

    Extends a vector with items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<&[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&mut [U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","jf_merkle_tree::internal::MerklePath"],["
    1.48.0 · source§

    impl<T, U, A> PartialEq<[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, U, A1, A2> PartialEq<Vec<U, A2>> for Vec<T, A1>
    where\n A1: Allocator,\n A2: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &Vec<U, A2>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Vec<U, A2>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A1, A2> PartialOrd<Vec<T, A2>> for Vec<T, A1>
    where\n T: PartialOrd,\n A1: Allocator,\n A2: Allocator,

    Implements comparison of vectors, lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &Vec<T, A2>) -> 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>","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T> Serialize for Vec<T>
    where\n T: 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","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<T> Valid for Vec<T>
    where\n T: Valid,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Vec<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Vec<T>: 'a,

    ","Valid","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T> Vec<T>

    1.0.0 (const: 1.39.0) · source

    pub const fn new() -> Vec<T>

    Constructs a new, empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::new();
    \n
    1.0.0 · source

    pub fn with_capacity(capacity: usize) -> Vec<T>

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<()>::with_capacity(10);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity(capacity: usize) -> Result<Vec<T>, TryReserveError>

    🔬This is a nightly-only experimental API. (try_with_capacity)

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    1.0.0 · source

    pub unsafe fn from_raw_parts(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n) -> Vec<T>

    Creates a Vec<T> directly from a pointer, a length, and a capacity.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must have been allocated using the global allocator, such as via\nthe alloc::alloc function.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to be the capacity that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is normally not safe\nto build a Vec<u8> from a pointer to a C char array with length\nsize_t, doing so is only safe if the array was initially allocated by\na Vec or String.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1. To avoid\nthese issues, it is often preferable to do casting/transmuting using\nslice::from_raw_parts instead.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    use std::ptr;\nuse std::mem;\n\nlet v = vec![1, 2, 3];\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts(p, len, cap);\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    use std::alloc::{alloc, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = alloc(layout).cast::<u32>();\n        if mem.is_null() {\n            return;\n        }\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts(mem, 1, 16)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: Clone,\n A: Allocator,

    1.5.0 · source

    pub fn resize(&mut self, new_len: usize, value: T)

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with value.\nIf new_len is less than len, the Vec is simply truncated.

    \n

    This method requires T to implement Clone,\nin order to be able to clone the passed value.\nIf you need more flexibility (or want to rely on Default instead of\nClone), use Vec::resize_with.\nIf you only need to resize to a smaller size, use Vec::truncate.

    \n
    §Examples
    \n
    let mut vec = vec![\"hello\"];\nvec.resize(3, \"world\");\nassert_eq!(vec, [\"hello\", \"world\", \"world\"]);\n\nlet mut vec = vec![1, 2, 3, 4];\nvec.resize(2, 0);\nassert_eq!(vec, [1, 2]);
    \n
    1.6.0 · source

    pub fn extend_from_slice(&mut self, other: &[T])

    Clones and appends all elements in a slice to the Vec.

    \n

    Iterates over the slice other, clones each element, and then appends\nit to this Vec. The other slice is traversed in-order.

    \n

    Note that this function is same as extend except that it is\nspecialized to work with slices instead. If and when Rust gets\nspecialization this function will likely be deprecated (but still\navailable).

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.extend_from_slice(&[2, 3, 4]);\nassert_eq!(vec, [1, 2, 3, 4]);
    \n
    1.53.0 · source

    pub fn extend_from_within<R>(&mut self, src: R)
    where\n R: RangeBounds<usize>,

    Copies elements from src range to the end of the vector.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut vec = vec![0, 1, 2, 3, 4];\n\nvec.extend_from_within(2..);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]);\n\nvec.extend_from_within(..2);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1]);\n\nvec.extend_from_within(4..8);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: PartialEq,\n A: Allocator,

    1.0.0 · source

    pub fn dedup(&mut self)

    Removes consecutive repeated elements in the vector according to the\nPartialEq trait implementation.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 2, 3, 2];\n\nvec.dedup();\n\nassert_eq!(vec, [1, 2, 3, 2]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    1.21.0 · source

    pub fn splice<R, I>(\n &mut self,\n range: R,\n replace_with: I,\n) -> Splice<'_, <I as IntoIterator>::IntoIter, A>
    where\n R: RangeBounds<usize>,\n I: IntoIterator<Item = T>,

    Creates a splicing iterator that replaces the specified range in the vector\nwith the given replace_with iterator and yields the removed items.\nreplace_with does not need to be the same length as range.

    \n

    range is removed even if the iterator is not consumed until the end.

    \n

    It is unspecified how many elements are removed from the vector\nif the Splice value is leaked.

    \n

    The input iterator replace_with is only consumed when the Splice value is dropped.

    \n

    This is optimal if:

    \n
      \n
    • The tail (elements in the vector after range) is empty,
    • \n
    • or replace_with yields fewer or equal elements than range’s length
    • \n
    • or the lower bound of its size_hint() is exact.
    • \n
    \n

    Otherwise, a temporary vector is allocated and the tail is moved twice.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3, 4];\nlet new = [7, 8, 9];\nlet u: Vec<_> = v.splice(1..3, new).collect();\nassert_eq!(v, &[1, 7, 8, 9, 4]);\nassert_eq!(u, &[2, 3]);
    \n
    source

    pub fn extract_if<F>(&mut self, filter: F) -> ExtractIf<'_, T, F, A>
    where\n F: FnMut(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (extract_if)

    Creates an iterator which uses a closure to determine if an element should be removed.

    \n

    If the closure returns true, then the element is removed and yielded.\nIf the closure returns false, the element will remain in the vector and will not be yielded\nby the iterator.

    \n

    If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

    \n

    Using this method is equivalent to the following code:

    \n\n
    let mut i = 0;\nwhile i < vec.len() {\n    if some_predicate(&mut vec[i]) {\n        let val = vec.remove(i);\n        // your code here\n    } else {\n        i += 1;\n    }\n}\n
    \n

    But extract_if is easier to use. extract_if is also more efficient,\nbecause it can backshift the elements of the array in bulk.

    \n

    Note that extract_if also lets you mutate every element in the filter closure,\nregardless of whether you choose to keep or remove it.

    \n
    §Examples
    \n

    Splitting an array into evens and odds, reusing the original allocation:

    \n\n
    #![feature(extract_if)]\nlet mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15];\n\nlet evens = numbers.extract_if(|x| *x % 2 == 0).collect::<Vec<_>>();\nlet odds = numbers;\n\nassert_eq!(evens, vec![2, 4, 6, 8, 14]);\nassert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    source

    pub const fn new_in(alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec: Vec<i32, _> = Vec::new_in(System);
    \n
    source

    pub fn with_capacity_in(capacity: usize, alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T, A> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec = Vec::with_capacity_in(10, System);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<(), System>::with_capacity_in(10, System);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity_in(\n capacity: usize,\n alloc: A,\n) -> Result<Vec<T, A>, TryReserveError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    source

    pub unsafe fn from_raw_parts_in(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n alloc: A,\n) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Creates a Vec<T, A> directly from a pointer, a length, a capacity,\nand an allocator.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must be currently allocated via the given allocator alloc.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to fit the layout size that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T, A>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is not safe\nto build a Vec<u8> from a pointer to a C char array with length size_t.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nuse std::ptr;\nuse std::mem;\n\nlet mut v = Vec::with_capacity_in(3, System);\nv.push(1);\nv.push(2);\nv.push(3);\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\nlet alloc = v.allocator();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts_in(p, len, cap, alloc.clone());\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{AllocError, Allocator, Global, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = match Global.allocate(layout) {\n            Ok(mem) => mem.cast::<u32>().as_ptr(),\n            Err(AllocError) => return,\n        };\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts_in(mem, 1, 16, Global)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    source

    pub fn into_raw_parts(self) -> (*mut T, usize, usize)

    🔬This is a nightly-only experimental API. (vec_into_raw_parts)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity).

    \n

    Returns the raw pointer to the underlying data, the length of\nthe vector (in elements), and the allocated capacity of the\ndata (in elements). These are the same arguments in the same\norder as the arguments to from_raw_parts.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(vec_into_raw_parts)]\nlet v: Vec<i32> = vec![-1, 0, 1];\n\nlet (ptr, len, cap) = v.into_raw_parts();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts(ptr, len, cap)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    source

    pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity, allocator).

    \n

    Returns the raw pointer to the underlying data, the length of the vector (in elements),\nthe allocated capacity of the data (in elements), and the allocator. These are the same\narguments in the same order as the arguments to from_raw_parts_in.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts_in function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(allocator_api, vec_into_raw_parts)]\n\nuse std::alloc::System;\n\nlet mut v: Vec<i32, System> = Vec::new_in(System);\nv.push(-1);\nv.push(0);\nv.push(1);\n\nlet (ptr, len, cap, alloc) = v.into_raw_parts_with_alloc();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts_in(ptr, len, cap, alloc)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns the total number of elements the vector can hold without\nreallocating.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::with_capacity(10);\nvec.push(42);\nassert!(vec.capacity() >= 10);
    \n
    1.0.0 · source

    pub fn reserve(&mut self, additional: usize)

    Reserves capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to\nspeculatively avoid frequent reallocations. After calling reserve,\ncapacity will be greater than or equal to self.len() + additional.\nDoes nothing if capacity is already sufficient.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve(10);\nassert!(vec.capacity() >= 11);
    \n
    1.0.0 · source

    pub fn reserve_exact(&mut self, additional: usize)

    Reserves the minimum capacity for at least additional more elements to\nbe inserted in the given Vec<T>. Unlike reserve, this will not\ndeliberately over-allocate to speculatively avoid frequent allocations.\nAfter calling reserve_exact, capacity will be greater than or equal to\nself.len() + additional. Does nothing if the capacity is already\nsufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer reserve if future insertions are expected.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve_exact(10);\nassert!(vec.capacity() >= 11);
    \n
    1.57.0 · source

    pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

    Tries to reserve capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to speculatively avoid\nfrequent reallocations. After calling try_reserve, capacity will be\ngreater than or equal to self.len() + additional if it returns\nOk(()). Does nothing if capacity is already sufficient. This method\npreserves the contents even if an error occurs.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.57.0 · source

    pub fn try_reserve_exact(\n &mut self,\n additional: usize,\n) -> Result<(), TryReserveError>

    Tries to reserve the minimum capacity for at least additional\nelements to be inserted in the given Vec<T>. Unlike try_reserve,\nthis will not deliberately over-allocate to speculatively avoid frequent\nallocations. After calling try_reserve_exact, capacity will be greater\nthan or equal to self.len() + additional if it returns Ok(()).\nDoes nothing if the capacity is already sufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer try_reserve if future insertions are expected.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve_exact(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.0.0 · source

    pub fn shrink_to_fit(&mut self)

    Shrinks the capacity of the vector as much as possible.

    \n

    The behavior of this method depends on the allocator, which may either shrink the vector\nin-place or reallocate. The resulting vector might still have some excess capacity, just as\nis the case for with_capacity. See Allocator::shrink for more details.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to_fit();\nassert!(vec.capacity() >= 3);
    \n
    1.56.0 · source

    pub fn shrink_to(&mut self, min_capacity: usize)

    Shrinks the capacity of the vector with a lower bound.

    \n

    The capacity will remain at least as large as both the length\nand the supplied value.

    \n

    If the current capacity is less than the lower limit, this is a no-op.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to(4);\nassert!(vec.capacity() >= 4);\nvec.shrink_to(0);\nassert!(vec.capacity() >= 3);
    \n
    1.0.0 · source

    pub fn into_boxed_slice(self) -> Box<[T], A>

    Converts the vector into Box<[T]>.

    \n

    Before doing the conversion, this method discards excess capacity like shrink_to_fit.

    \n
    §Examples
    \n
    let v = vec![1, 2, 3];\n\nlet slice = v.into_boxed_slice();
    \n

    Any excess capacity is removed:

    \n\n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\n\nassert!(vec.capacity() >= 10);\nlet slice = vec.into_boxed_slice();\nassert_eq!(slice.into_vec().capacity(), 3);
    \n
    1.0.0 · source

    pub fn truncate(&mut self, len: usize)

    Shortens the vector, keeping the first len elements and dropping\nthe rest.

    \n

    If len is greater or equal to the vector’s current length, this has\nno effect.

    \n

    The drain method can emulate truncate, but causes the excess\nelements to be returned instead of dropped.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n

    Truncating a five element vector to two elements:

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nvec.truncate(2);\nassert_eq!(vec, [1, 2]);
    \n

    No truncation occurs when len is greater than the vector’s current\nlength:

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(8);\nassert_eq!(vec, [1, 2, 3]);
    \n

    Truncating when len == 0 is equivalent to calling the clear\nmethod.

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(0);\nassert_eq!(vec, []);
    \n
    1.7.0 · source

    pub fn as_slice(&self) -> &[T]

    Extracts a slice containing the entire vector.

    \n

    Equivalent to &s[..].

    \n
    §Examples
    \n
    use std::io::{self, Write};\nlet buffer = vec![1, 2, 3, 5, 8];\nio::sink().write(buffer.as_slice()).unwrap();
    \n
    1.7.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Extracts a mutable slice of the entire vector.

    \n

    Equivalent to &mut s[..].

    \n
    §Examples
    \n
    use std::io::{self, Read};\nlet mut buffer = vec![0; 3];\nio::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
    \n
    1.37.0 · source

    pub fn as_ptr(&self) -> *const T

    Returns a raw pointer to the vector’s buffer, or a dangling raw pointer\nvalid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the slice,\nor mutable references to specific elements you are planning on accessing through this pointer,\nas well as writing to those elements, may still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    let x = vec![1, 2, 4];\nlet x_ptr = x.as_ptr();\n\nunsafe {\n    for i in 0..x.len() {\n        assert_eq!(*x_ptr.add(i), 1 << i);\n    }\n}
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0, 1, 2];\n    let ptr1 = v.as_ptr();\n    let _ = ptr1.read();\n    let ptr2 = v.as_mut_ptr().offset(2);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`\n    // because it mutated a different element:\n    let _ = ptr1.read();\n}
    \n
    1.37.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut T

    Returns an unsafe mutable pointer to the vector’s buffer, or a dangling\nraw pointer valid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the slice,\nor references to specific elements you are planning on accessing through this pointer,\nmay still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    // Allocate vector big enough for 4 elements.\nlet size = 4;\nlet mut x: Vec<i32> = Vec::with_capacity(size);\nlet x_ptr = x.as_mut_ptr();\n\n// Initialize elements via raw pointer writes, then set length.\nunsafe {\n    for i in 0..size {\n        *x_ptr.add(i) = i as i32;\n    }\n    x.set_len(size);\n}\nassert_eq!(&*x, &[0, 1, 2, 3]);
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0];\n    let ptr1 = v.as_mut_ptr();\n    ptr1.write(1);\n    let ptr2 = v.as_mut_ptr();\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    source

    pub fn allocator(&self) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n
    1.0.0 · source

    pub unsafe fn set_len(&mut self, new_len: usize)

    Forces the length of the vector to new_len.

    \n

    This is a low-level operation that maintains none of the normal\ninvariants of the type. Normally changing the length of a vector\nis done using one of the safe operations instead, such as\ntruncate, resize, extend, or clear.

    \n
    §Safety
    \n
      \n
    • new_len must be less than or equal to capacity().
    • \n
    • The elements at old_len..new_len must be initialized.
    • \n
    \n
    §Examples
    \n

    This method can be useful for situations in which the vector\nis serving as a buffer for other code, particularly over FFI:

    \n\n
    pub fn get_dictionary(&self) -> Option<Vec<u8>> {\n    // Per the FFI method's docs, \"32768 bytes is always enough\".\n    let mut dict = Vec::with_capacity(32_768);\n    let mut dict_length = 0;\n    // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that:\n    // 1. `dict_length` elements were initialized.\n    // 2. `dict_length` <= the capacity (32_768)\n    // which makes `set_len` safe to call.\n    unsafe {\n        // Make the FFI call...\n        let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length);\n        if r == Z_OK {\n            // ...and update the length to what was initialized.\n            dict.set_len(dict_length);\n            Some(dict)\n        } else {\n            None\n        }\n    }\n}
    \n

    While the following example is sound, there is a memory leak since\nthe inner vectors were not freed prior to the set_len call:

    \n\n
    let mut vec = vec![vec![1, 0, 0],\n                   vec![0, 1, 0],\n                   vec![0, 0, 1]];\n// SAFETY:\n// 1. `old_len..0` is empty so no elements need to be initialized.\n// 2. `0 <= capacity` always holds whatever `capacity` is.\nunsafe {\n    vec.set_len(0);\n}
    \n

    Normally, here, one would use clear instead to correctly drop\nthe contents and thus not leak memory.

    \n
    1.0.0 · source

    pub fn swap_remove(&mut self, index: usize) -> T

    Removes an element from the vector and returns it.

    \n

    The removed element is replaced by the last element of the vector.

    \n

    This does not preserve ordering of the remaining elements, but is O(1).\nIf you need to preserve the element order, use remove instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![\"foo\", \"bar\", \"baz\", \"qux\"];\n\nassert_eq!(v.swap_remove(1), \"bar\");\nassert_eq!(v, [\"foo\", \"qux\", \"baz\"]);\n\nassert_eq!(v.swap_remove(0), \"foo\");\nassert_eq!(v, [\"baz\", \"qux\"]);
    \n
    1.0.0 · source

    pub fn insert(&mut self, index: usize, element: T)

    Inserts an element at position index within the vector, shifting all\nelements after it to the right.

    \n
    §Panics
    \n

    Panics if index > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.insert(1, 4);\nassert_eq!(vec, [1, 4, 2, 3]);\nvec.insert(4, 5);\nassert_eq!(vec, [1, 4, 2, 3, 5]);
    \n
    §Time complexity
    \n

    Takes O(Vec::len) time. All items after the insertion index must be\nshifted to the right. In the worst case, all elements are shifted when\nthe insertion index is 0.

    \n
    1.0.0 · source

    pub fn remove(&mut self, index: usize) -> T

    Removes and returns the element at position index within the vector,\nshifting all elements after it to the left.

    \n

    Note: Because this shifts over the remaining elements, it has a\nworst-case performance of O(n). If you don’t need the order of elements\nto be preserved, use swap_remove instead. If you’d like to remove\nelements from the beginning of the Vec, consider using\nVecDeque::pop_front instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nassert_eq!(v.remove(1), 2);\nassert_eq!(v, [1, 3]);
    \n
    1.0.0 · source

    pub fn retain<F>(&mut self, f: F)
    where\n F: FnMut(&T) -> bool,

    Retains only the elements specified by the predicate.

    \n

    In other words, remove all elements e for which f(&e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain(|&x| x % 2 == 0);\nassert_eq!(vec, [2, 4]);
    \n

    Because the elements are visited exactly once in the original order,\nexternal state may be used to decide which elements to keep.

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nlet keep = [false, true, true, false, true];\nlet mut iter = keep.iter();\nvec.retain(|_| *iter.next().unwrap());\nassert_eq!(vec, [2, 3, 5]);
    \n
    1.61.0 · source

    pub fn retain_mut<F>(&mut self, f: F)
    where\n F: FnMut(&mut T) -> bool,

    Retains only the elements specified by the predicate, passing a mutable reference to it.

    \n

    In other words, remove all elements e such that f(&mut e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain_mut(|x| if *x <= 3 {\n    *x += 1;\n    true\n} else {\n    false\n});\nassert_eq!(vec, [2, 3, 4]);
    \n
    1.16.0 · source

    pub fn dedup_by_key<F, K>(&mut self, key: F)
    where\n F: FnMut(&mut T) -> K,\n K: PartialEq,

    Removes all but the first of consecutive elements in the vector that resolve to the same\nkey.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![10, 20, 21, 30, 20];\n\nvec.dedup_by_key(|i| *i / 10);\n\nassert_eq!(vec, [10, 20, 30, 20]);
    \n
    1.16.0 · source

    pub fn dedup_by<F>(&mut self, same_bucket: F)
    where\n F: FnMut(&mut T, &mut T) -> bool,

    Removes all but the first of consecutive elements in the vector satisfying a given equality\nrelation.

    \n

    The same_bucket function is passed references to two elements from the vector and\nmust determine if the elements compare equal. The elements are passed in opposite order\nfrom their order in the slice, so if same_bucket(a, b) returns true, a is removed.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![\"foo\", \"bar\", \"Bar\", \"baz\", \"bar\"];\n\nvec.dedup_by(|a, b| a.eq_ignore_ascii_case(b));\n\nassert_eq!(vec, [\"foo\", \"bar\", \"baz\", \"bar\"]);
    \n
    1.0.0 · source

    pub fn push(&mut self, value: T)

    Appends an element to the back of a collection.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2];\nvec.push(3);\nassert_eq!(vec, [1, 2, 3]);
    \n
    §Time complexity
    \n

    Takes amortized O(1) time. If the vector’s length would exceed its\ncapacity after the push, O(capacity) time is taken to copy the\nvector’s elements to a larger allocation. This expensive operation is\noffset by the capacity O(1) insertions it allows.

    \n
    source

    pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

    🔬This is a nightly-only experimental API. (vec_push_within_capacity)

    Appends an element if there is sufficient spare capacity, otherwise an error is returned\nwith the element.

    \n

    Unlike push this method will not reallocate when there’s insufficient capacity.\nThe caller should use reserve or try_reserve to ensure that there is enough capacity.

    \n
    §Examples
    \n

    A manual, panic-free alternative to FromIterator:

    \n\n
    #![feature(vec_push_within_capacity)]\n\nuse std::collections::TryReserveError;\nfn from_iter_fallible<T>(iter: impl Iterator<Item=T>) -> Result<Vec<T>, TryReserveError> {\n    let mut vec = Vec::new();\n    for value in iter {\n        if let Err(value) = vec.push_within_capacity(value) {\n            vec.try_reserve(1)?;\n            // this cannot fail, the previous line either returned or added at least 1 free slot\n            let _ = vec.push_within_capacity(value);\n        }\n    }\n    Ok(vec)\n}\nassert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100)));
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    1.0.0 · source

    pub fn pop(&mut self) -> Option<T>

    Removes the last element from a vector and returns it, or None if it\nis empty.

    \n

    If you’d like to pop the first element, consider using\nVecDeque::pop_front instead.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nassert_eq!(vec.pop(), Some(3));\nassert_eq!(vec, [1, 2]);
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    source

    pub fn pop_if<F>(&mut self, f: F) -> Option<T>
    where\n F: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (vec_pop_if)

    Removes and returns the last element in a vector if the predicate\nreturns true, or None if the predicate returns false or the vector\nis empty.

    \n
    §Examples
    \n
    #![feature(vec_pop_if)]\n\nlet mut vec = vec![1, 2, 3, 4];\nlet pred = |x: &mut i32| *x % 2 == 0;\n\nassert_eq!(vec.pop_if(pred), Some(4));\nassert_eq!(vec, [1, 2, 3]);\nassert_eq!(vec.pop_if(pred), None);
    \n
    1.4.0 · source

    pub fn append(&mut self, other: &mut Vec<T, A>)

    Moves all the elements of other into self, leaving other empty.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet mut vec2 = vec![4, 5, 6];\nvec.append(&mut vec2);\nassert_eq!(vec, [1, 2, 3, 4, 5, 6]);\nassert_eq!(vec2, []);
    \n
    1.6.0 · source

    pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>
    where\n R: RangeBounds<usize>,

    Removes the specified range from the vector in bulk, returning all\nremoved elements as an iterator. If the iterator is dropped before\nbeing fully consumed, it drops the remaining removed elements.

    \n

    The returned iterator keeps a mutable borrow on the vector to optimize\nits implementation.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Leaking
    \n

    If the returned iterator goes out of scope without being dropped (due to\nmem::forget, for example), the vector may have lost and leaked\nelements arbitrarily, including elements outside the range.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nlet u: Vec<_> = v.drain(1..).collect();\nassert_eq!(v, &[1]);\nassert_eq!(u, &[2, 3]);\n\n// A full range clears the vector, like `clear()` does\nv.drain(..);\nassert_eq!(v, &[]);
    \n
    1.0.0 · source

    pub fn clear(&mut self)

    Clears the vector, removing all values.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\n\nv.clear();\n\nassert!(v.is_empty());
    \n
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the number of elements in the vector, also referred to\nas its ‘length’.

    \n
    §Examples
    \n
    let a = vec![1, 2, 3];\nassert_eq!(a.len(), 3);
    \n
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if the vector contains no elements.

    \n
    §Examples
    \n
    let mut v = Vec::new();\nassert!(v.is_empty());\n\nv.push(1);\nassert!(!v.is_empty());
    \n
    1.4.0 · source

    pub fn split_off(&mut self, at: usize) -> Vec<T, A>
    where\n A: Clone,

    Splits the collection into two at the given index.

    \n

    Returns a newly allocated vector containing the elements in the range\n[at, len). After the call, the original vector will be left containing\nthe elements [0, at) with its previous capacity unchanged.

    \n
      \n
    • If you want to take ownership of the entire contents and capacity of\nthe vector, see mem::take or mem::replace.
    • \n
    • If you don’t need the returned vector at all, see Vec::truncate.
    • \n
    • If you want to take ownership of an arbitrary subslice, or you don’t\nnecessarily want to store the removed items in a vector, see Vec::drain.
    • \n
    \n
    §Panics
    \n

    Panics if at > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);
    \n
    1.33.0 · source

    pub fn resize_with<F>(&mut self, new_len: usize, f: F)
    where\n F: FnMut() -> T,

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with the result of\ncalling the closure f. The return values from f will end up\nin the Vec in the order they have been generated.

    \n

    If new_len is less than len, the Vec is simply truncated.

    \n

    This method uses a closure to create new values on every push. If\nyou’d rather Clone a given value, use Vec::resize. If you\nwant to use the Default trait to generate values, you can\npass Default::default as the second argument.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.resize_with(5, Default::default);\nassert_eq!(vec, [1, 2, 3, 0, 0]);\n\nlet mut vec = vec![];\nlet mut p = 1;\nvec.resize_with(4, || { p *= 2; p });\nassert_eq!(vec, [2, 4, 8, 16]);
    \n
    1.47.0 · source

    pub fn leak<'a>(self) -> &'a mut [T]
    where\n A: 'a,

    Consumes and leaks the Vec, returning a mutable reference to the contents,\n&'a mut [T]. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    As of Rust 1.57, this method does not reallocate or shrink the Vec,\nso the leaked allocation may include unused capacity that is not part\nof the returned slice.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = vec![1, 2, 3];\nlet static_ref: &'static mut [usize] = x.leak();\nstatic_ref[0] += 1;\nassert_eq!(static_ref, &[2, 2, 3]);
    \n
    1.60.0 · source

    pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

    Returns the remaining spare capacity of the vector as a slice of\nMaybeUninit<T>.

    \n

    The returned slice can be used to fill the vector with data (e.g. by\nreading from a file) before marking the data as initialized using the\nset_len method.

    \n
    §Examples
    \n
    // Allocate vector big enough for 10 elements.\nlet mut v = Vec::with_capacity(10);\n\n// Fill in the first 3 elements.\nlet uninit = v.spare_capacity_mut();\nuninit[0].write(0);\nuninit[1].write(1);\nuninit[2].write(2);\n\n// Mark the first 3 elements of the vector as being initialized.\nunsafe {\n    v.set_len(3);\n}\n\nassert_eq!(&v, &[0, 1, 2]);
    \n
    source

    pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

    🔬This is a nightly-only experimental API. (vec_split_at_spare)

    Returns vector content as a slice of T, along with the remaining spare\ncapacity of the vector as a slice of MaybeUninit<T>.

    \n

    The returned spare capacity slice can be used to fill the vector with data\n(e.g. by reading from a file) before marking the data as initialized using\nthe set_len method.

    \n

    Note that this is a low-level API, which should be used with care for\noptimization purposes. If you need to append data to a Vec\nyou can use push, extend, extend_from_slice,\nextend_from_within, insert, append, resize or\nresize_with, depending on your exact needs.

    \n
    §Examples
    \n
    #![feature(vec_split_at_spare)]\n\nlet mut v = vec![1, 1, 2];\n\n// Reserve additional space big enough for 10 elements.\nv.reserve(10);\n\nlet (init, uninit) = v.split_at_spare_mut();\nlet sum = init.iter().copied().sum::<u32>();\n\n// Fill in the next 4 elements.\nuninit[0].write(sum);\nuninit[1].write(sum * 2);\nuninit[2].write(sum * 3);\nuninit[3].write(sum * 4);\n\n// Mark the 4 elements of the vector as being initialized.\nunsafe {\n    let len = v.len();\n    v.set_len(len + 4);\n}\n\nassert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]);
    \n
    ",0,"jf_merkle_tree::internal::MerklePath"],["
    §

    impl<Z> Zeroize for Vec<Z>
    where\n Z: Zeroize,

    §

    fn zeroize(&mut self)

    “Best effort” zeroization for Vec.

    \n

    Ensures the entire capacity of the Vec is zeroed. Cannot ensure that\nprevious reallocations did not leave values on the heap.

    \n
    ","Zeroize","jf_merkle_tree::internal::MerklePath"],["
    source§

    impl<T, A> DerefPure for Vec<T, A>
    where\n A: Allocator,

    ","DerefPure","jf_merkle_tree::internal::MerklePath"],["
    1.0.0 · source§

    impl<T, A> Eq for Vec<T, A>
    where\n T: Eq,\n A: Allocator,

    ","Eq","jf_merkle_tree::internal::MerklePath"],["
    §

    impl<Z> ZeroizeOnDrop for Vec<Z>
    where\n Z: ZeroizeOnDrop,

    ","ZeroizeOnDrop","jf_merkle_tree::internal::MerklePath"]], +"jf_pcs":[["
    1.5.0 · source§

    impl<T, A> AsMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut [T]

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.5.0 · source§

    impl<T, A> AsMut<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_mut(&mut self) -> &mut Vec<T, A>

    Converts this type into a mutable reference of the (usually inferred) input type.
    ","AsMut>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> AsRef<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &[T]

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> AsRef<Vec<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn as_ref(&self) -> &Vec<T, A>

    Converts this type into a shared reference of the (usually inferred) input type.
    ","AsRef>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Borrow<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow(&self) -> &[T]

    Immutably borrows from an owned value. Read more
    ","Borrow<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> BorrowMut<[T]> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn borrow_mut(&mut self) -> &mut [T]

    Mutably borrows from an owned value. Read more
    ","BorrowMut<[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> CanonicalDeserialize for Vec<T>
    where\n T: CanonicalDeserialize,

    §

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<Vec<T>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> CanonicalSerialize for Vec<T>
    where\n T: CanonicalSerialize,

    §

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    §

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Clone for Vec<T, A>
    where\n T: Clone,\n A: Allocator + Clone,

    source§

    fn clone_from(&mut self, source: &Vec<T, A>)

    Overwrites the contents of self with a clone of the contents of source.

    \n

    This method is preferred over simply assigning source.clone() to self,\nas it avoids reallocation if possible. Additionally, if the element type\nT overrides clone_from(), this will reuse the resources of self’s\nelements as well.

    \n
    §Examples
    \n
    let x = vec![5, 6, 7];\nlet mut y = vec![8, 9, 10];\nlet yp: *const i32 = y.as_ptr();\n\ny.clone_from(&x);\n\n// The value is the same\nassert_eq!(x, y);\n\n// And no reallocation occurred\nassert_eq!(yp, y.as_ptr());
    \n
    source§

    fn clone(&self) -> Vec<T, A>

    Returns a copy of the value. Read more
    ","Clone","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Debug for Vec<T, A>
    where\n T: Debug,\n A: Allocator,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> Default for Vec<T>

    source§

    fn default() -> Vec<T>

    Creates an empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    ","Default","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Deref for Vec<T, A>
    where\n A: Allocator,

    §

    type Target = [T]

    The resulting type after dereferencing.
    source§

    fn deref(&self) -> &[T]

    Dereferences the value.
    ","Deref","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> DerefMut for Vec<T, A>
    where\n A: Allocator,

    source§

    fn deref_mut(&mut self) -> &mut [T]

    Mutably dereferences the value.
    ","DerefMut","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<'de, T> Deserialize<'de> for Vec<T>
    where\n T: Deserialize<'de>,

    source§

    fn deserialize<D>(\n deserializer: D,\n) -> Result<Vec<T>, <D as Deserializer<'de>>::Error>
    where\n D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Drop for Vec<T, A>
    where\n A: Allocator,

    source§

    fn drop(&mut self)

    Executes the destructor for this type. Read more
    ","Drop","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.2.0 · source§

    impl<'a, T, A> Extend<&'a T> for Vec<T, A>
    where\n T: Copy + 'a,\n A: Allocator,

    Extend implementation that copies elements out of references before pushing them onto the Vec.

    \n

    This implementation is specialized for slice iterators, where it uses copy_from_slice to\nappend the entire slice at once.

    \n
    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = &'a T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, _: &'a T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend<&'a T>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Extend<T> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn extend<I>(&mut self, iter: I)
    where\n I: IntoIterator<Item = T>,

    Extends a collection with the contents of an iterator. Read more
    source§

    fn extend_one(&mut self, item: T)

    🔬This is a nightly-only experimental API. (extend_one)
    Extends a collection with exactly one element.
    source§

    fn extend_reserve(&mut self, additional: usize)

    🔬This is a nightly-only experimental API. (extend_one)
    Reserves capacity in a collection for the given number of additional elements. Read more
    ","Extend","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> From<&[T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&[T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&[T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &[T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&[1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&[T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.19.0 · source§

    impl<T> From<&mut [T]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3][..]), vec![1, 2, 3]);
    \n
    ","From<&mut [T]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.74.0 · source§

    impl<T, const N: usize> From<&mut [T; N]> for Vec<T>
    where\n T: Clone,

    source§

    fn from(s: &mut [T; N]) -> Vec<T>

    Allocate a Vec<T> and fill it by cloning s’s items.

    \n
    §Examples
    \n
    assert_eq!(Vec::from(&mut [1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<&mut [T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.44.0 · source§

    impl<T, const N: usize> From<[T; N]> for Vec<T>

    source§

    fn from(s: [T; N]) -> Vec<T>

    Allocate a Vec<T> and move s’s items into it.

    \n
    §Examples
    \n
    assert_eq!(Vec::from([1, 2, 3]), vec![1, 2, 3]);
    \n
    ","From<[T; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.5.0 · source§

    impl<T, A> From<BinaryHeap<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(heap: BinaryHeap<T, A>) -> Vec<T, A>

    Converts a BinaryHeap<T> into a Vec<T>.

    \n

    This conversion requires no data movement or allocation, and has\nconstant time complexity.

    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.18.0 · source§

    impl<T, A> From<Box<[T], A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(s: Box<[T], A>) -> Vec<T, A>

    Convert a boxed slice into a vector by transferring ownership of\nthe existing heap allocation.

    \n
    §Examples
    \n
    let b: Box<[i32]> = vec![1, 2, 3].into_boxed_slice();\nassert_eq!(Vec::from(b), vec![1, 2, 3]);
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.14.0 · source§

    impl<'a, T> From<Cow<'a, [T]>> for Vec<T>
    where\n [T]: ToOwned<Owned = Vec<T>>,

    source§

    fn from(s: Cow<'a, [T]>) -> Vec<T>

    Convert a clone-on-write slice into a vector.

    \n

    If s already owns a Vec<T>, it will be returned directly.\nIf s is borrowing a slice, a new Vec<T> will be allocated and\nfilled by cloning s’s items into it.

    \n
    §Examples
    \n
    let o: Cow<'_, [i32]> = Cow::Owned(vec![1, 2, 3]);\nlet b: Cow<'_, [i32]> = Cow::Borrowed(&[1, 2, 3]);\nassert_eq!(Vec::from(o), Vec::from(b));
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.10.0 · source§

    impl<T, A> From<VecDeque<T, A>> for Vec<T, A>
    where\n A: Allocator,

    source§

    fn from(other: VecDeque<T, A>) -> Vec<T, A>

    Turn a VecDeque<T> into a Vec<T>.

    \n

    This never needs to re-allocate, but does need to do O(n) data movement if\nthe circular buffer doesn’t happen to be at the beginning of the allocation.

    \n
    §Examples
    \n
    use std::collections::VecDeque;\n\n// This one is *O*(1).\nlet deque: VecDeque<_> = (1..5).collect();\nlet ptr = deque.as_slices().0.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);\n\n// This one needs data rearranging.\nlet mut deque: VecDeque<_> = (1..5).collect();\ndeque.push_front(9);\ndeque.push_front(8);\nlet ptr = deque.as_slices().1.as_ptr();\nlet vec = Vec::from(deque);\nassert_eq!(vec, [8, 9, 1, 2, 3, 4]);\nassert_eq!(vec.as_ptr(), ptr);
    \n
    ","From>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T> FromIterator<T> for Vec<T>

    Collects an iterator into a Vec, commonly called via Iterator::collect()

    \n

    §Allocation behavior

    \n

    In general Vec does not guarantee any particular growth or allocation strategy.\nThat also applies to this trait impl.

    \n

    Note: This section covers implementation details and is therefore exempt from\nstability guarantees.

    \n

    Vec may use any or none of the following strategies,\ndepending on the supplied iterator:

    \n
      \n
    • preallocate based on Iterator::size_hint()\n
        \n
      • and panic if the number of items is outside the provided lower/upper bounds
      • \n
      \n
    • \n
    • use an amortized growth strategy similar to pushing one item at a time
    • \n
    • perform the iteration in-place on the original allocation backing the iterator
    • \n
    \n

    The last case warrants some attention. It is an optimization that in many cases reduces peak memory\nconsumption and improves cache locality. But when big, short-lived allocations are created,\nonly a small fraction of their items get collected, no further use is made of the spare capacity\nand the resulting Vec is moved into a longer-lived structure, then this can lead to the large\nallocations having their lifetimes unnecessarily extended which can result in increased memory\nfootprint.

    \n

    In cases where this is an issue, the excess capacity can be discarded with Vec::shrink_to(),\nVec::shrink_to_fit() or by collecting into Box<[T]> instead, which additionally reduces\nthe size of the long-lived struct.

    \n\n
    static LONG_LIVED: Mutex<Vec<Vec<u16>>> = Mutex::new(Vec::new());\n\nfor i in 0..10 {\n    let big_temporary: Vec<u16> = (0..1024).collect();\n    // discard most items\n    let mut result: Vec<_> = big_temporary.into_iter().filter(|i| i % 100 == 0).collect();\n    // without this a lot of unused capacity might be moved into the global\n    result.shrink_to_fit();\n    LONG_LIVED.lock().unwrap().push(result);\n}
    \n
    source§

    fn from_iter<I>(iter: I) -> Vec<T>
    where\n I: IntoIterator<Item = T>,

    Creates a value from an iterator. Read more
    ","FromIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> FromParallelIterator<T> for Vec<T>
    where\n T: Send,

    Collects items from a parallel iterator into a vector.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Vec<T>
    where\n I: IntoParallelIterator<Item = T>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Hash for Vec<T, A>
    where\n T: Hash,\n A: Allocator,

    The hash of a vector is the same as that of the corresponding slice,\nas required by the core::borrow::Borrow implementation.

    \n\n
    use std::hash::BuildHasher;\n\nlet b = std::hash::RandomState::new();\nlet v: Vec<u8> = vec![0xa8, 0x3c, 0x09];\nlet s: &[u8] = &[0xa8, 0x3c, 0x09];\nassert_eq!(b.hash_one(v), b.hash_one(s));
    \n
    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","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, I, A> Index<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    §

    type Output = <I as SliceIndex<[T]>>::Output

    The returned type after indexing.
    source§

    fn index(&self, index: I) -> &<Vec<T, A> as Index<I>>::Output

    Performs the indexing (container[index]) operation. Read more
    ","Index","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, I, A> IndexMut<I> for Vec<T, A>
    where\n I: SliceIndex<[T]>,\n A: Allocator,

    source§

    fn index_mut(&mut self, index: I) -> &mut <Vec<T, A> as Index<I>>::Output

    Performs the mutable indexing (container[index]) operation. Read more
    ","IndexMut","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<'de, T, E> IntoDeserializer<'de, E> for Vec<T>
    where\n T: IntoDeserializer<'de, E>,\n E: Error,

    §

    type Deserializer = SeqDeserializer<<Vec<T> as IntoIterator>::IntoIter, E>

    The type of the deserializer being converted into.
    source§

    fn into_deserializer(self) -> <Vec<T> as IntoDeserializer<'de, E>>::Deserializer

    Convert this value into a deserializer.
    ","IntoDeserializer<'de, E>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> IntoIterator for Vec<T, A>
    where\n A: Allocator,

    source§

    fn into_iter(self) -> <Vec<T, A> as IntoIterator>::IntoIter

    Creates a consuming iterator, that is, one that moves each value out of\nthe vector (from start to end). The vector cannot be used after calling\nthis.

    \n
    §Examples
    \n
    let v = vec![\"a\".to_string(), \"b\".to_string()];\nlet mut v_iter = v.into_iter();\n\nlet first_element: Option<String> = v_iter.next();\n\nassert_eq!(first_element, Some(\"a\".to_string()));\nassert_eq!(v_iter.next(), Some(\"b\".to_string()));\nassert_eq!(v_iter.next(), None);
    \n
    §

    type Item = T

    The type of the elements being iterated over.
    §

    type IntoIter = IntoIter<T, A>

    Which kind of iterator are we turning this into?
    ","IntoIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> IntoParallelIterator for Vec<T>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Vec<T> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Ord for Vec<T, A>
    where\n T: Ord,\n A: Allocator,

    Implements ordering of vectors, lexicographically.

    \n
    source§

    fn cmp(&self, other: &Vec<T, A>) -> Ordering

    This method returns an Ordering between self and other. Read more
    1.21.0 · source§

    fn max(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<'a, T> ParallelExtend<&'a T> for Vec<T>
    where\n T: 'a + Copy + Send + Sync,

    Extends a vector with copied items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = &'a T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend<&'a T>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> ParallelExtend<T> for Vec<T>
    where\n T: Send,

    Extends a vector with items from a parallel iterator.

    \n
    §

    fn par_extend<I>(&mut self, par_iter: I)
    where\n I: IntoParallelIterator<Item = T>,

    Extends an instance of the collection with the elements drawn\nfrom the parallel iterator par_iter. Read more
    ","ParallelExtend","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<&[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&[U; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A> PartialEq<&mut [U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &&mut [U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &&mut [U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<&mut [U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.48.0 · source§

    impl<T, U, A> PartialEq<[U]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A, const N: usize> PartialEq<[U; N]> for Vec<T, A>
    where\n A: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &[U; N]) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &[U; N]) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq<[U; N]>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, U, A1, A2> PartialEq<Vec<U, A2>> for Vec<T, A1>
    where\n A1: Allocator,\n A2: Allocator,\n T: PartialEq<U>,

    source§

    fn eq(&self, other: &Vec<U, A2>) -> bool

    This method tests for self and other values to be equal, and is used\nby ==.
    source§

    fn ne(&self, other: &Vec<U, A2>) -> bool

    This method tests for !=. The default implementation is almost always\nsufficient, and should not be overridden without very good reason.
    ","PartialEq>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A1, A2> PartialOrd<Vec<T, A2>> for Vec<T, A1>
    where\n T: PartialOrd,\n A1: Allocator,\n A2: Allocator,

    Implements comparison of vectors, lexicographically.

    \n
    source§

    fn partial_cmp(&self, other: &Vec<T, A2>) -> 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>","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T> Serialize for Vec<T>
    where\n T: 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","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<T> Valid for Vec<T>
    where\n T: Valid,

    §

    fn check(&self) -> Result<(), SerializationError>

    §

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a Vec<T>> + Send,\n) -> Result<(), SerializationError>
    where\n Vec<T>: 'a,

    ","Valid","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T> Vec<T>

    1.0.0 (const: 1.39.0) · source

    pub const fn new() -> Vec<T>

    Constructs a new, empty Vec<T>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::new();
    \n
    1.0.0 · source

    pub fn with_capacity(capacity: usize) -> Vec<T>

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<()>::with_capacity(10);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity(capacity: usize) -> Result<Vec<T>, TryReserveError>

    🔬This is a nightly-only experimental API. (try_with_capacity)

    Constructs a new, empty Vec<T> with at least the specified capacity.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    1.0.0 · source

    pub unsafe fn from_raw_parts(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n) -> Vec<T>

    Creates a Vec<T> directly from a pointer, a length, and a capacity.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must have been allocated using the global allocator, such as via\nthe alloc::alloc function.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to be the capacity that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is normally not safe\nto build a Vec<u8> from a pointer to a C char array with length\nsize_t, doing so is only safe if the array was initially allocated by\na Vec or String.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1. To avoid\nthese issues, it is often preferable to do casting/transmuting using\nslice::from_raw_parts instead.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    use std::ptr;\nuse std::mem;\n\nlet v = vec![1, 2, 3];\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts(p, len, cap);\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    use std::alloc::{alloc, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = alloc(layout).cast::<u32>();\n        if mem.is_null() {\n            return;\n        }\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts(mem, 1, 16)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: Clone,\n A: Allocator,

    1.5.0 · source

    pub fn resize(&mut self, new_len: usize, value: T)

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with value.\nIf new_len is less than len, the Vec is simply truncated.

    \n

    This method requires T to implement Clone,\nin order to be able to clone the passed value.\nIf you need more flexibility (or want to rely on Default instead of\nClone), use Vec::resize_with.\nIf you only need to resize to a smaller size, use Vec::truncate.

    \n
    §Examples
    \n
    let mut vec = vec![\"hello\"];\nvec.resize(3, \"world\");\nassert_eq!(vec, [\"hello\", \"world\", \"world\"]);\n\nlet mut vec = vec![1, 2, 3, 4];\nvec.resize(2, 0);\nassert_eq!(vec, [1, 2]);
    \n
    1.6.0 · source

    pub fn extend_from_slice(&mut self, other: &[T])

    Clones and appends all elements in a slice to the Vec.

    \n

    Iterates over the slice other, clones each element, and then appends\nit to this Vec. The other slice is traversed in-order.

    \n

    Note that this function is same as extend except that it is\nspecialized to work with slices instead. If and when Rust gets\nspecialization this function will likely be deprecated (but still\navailable).

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.extend_from_slice(&[2, 3, 4]);\nassert_eq!(vec, [1, 2, 3, 4]);
    \n
    1.53.0 · source

    pub fn extend_from_within<R>(&mut self, src: R)
    where\n R: RangeBounds<usize>,

    Copies elements from src range to the end of the vector.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut vec = vec![0, 1, 2, 3, 4];\n\nvec.extend_from_within(2..);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4]);\n\nvec.extend_from_within(..2);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1]);\n\nvec.extend_from_within(4..8);\nassert_eq!(vec, [0, 1, 2, 3, 4, 2, 3, 4, 0, 1, 4, 2, 3, 4]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n T: PartialEq,\n A: Allocator,

    1.0.0 · source

    pub fn dedup(&mut self)

    Removes consecutive repeated elements in the vector according to the\nPartialEq trait implementation.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 2, 3, 2];\n\nvec.dedup();\n\nassert_eq!(vec, [1, 2, 3, 2]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    1.21.0 · source

    pub fn splice<R, I>(\n &mut self,\n range: R,\n replace_with: I,\n) -> Splice<'_, <I as IntoIterator>::IntoIter, A>
    where\n R: RangeBounds<usize>,\n I: IntoIterator<Item = T>,

    Creates a splicing iterator that replaces the specified range in the vector\nwith the given replace_with iterator and yields the removed items.\nreplace_with does not need to be the same length as range.

    \n

    range is removed even if the iterator is not consumed until the end.

    \n

    It is unspecified how many elements are removed from the vector\nif the Splice value is leaked.

    \n

    The input iterator replace_with is only consumed when the Splice value is dropped.

    \n

    This is optimal if:

    \n
      \n
    • The tail (elements in the vector after range) is empty,
    • \n
    • or replace_with yields fewer or equal elements than range’s length
    • \n
    • or the lower bound of its size_hint() is exact.
    • \n
    \n

    Otherwise, a temporary vector is allocated and the tail is moved twice.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3, 4];\nlet new = [7, 8, 9];\nlet u: Vec<_> = v.splice(1..3, new).collect();\nassert_eq!(v, &[1, 7, 8, 9, 4]);\nassert_eq!(u, &[2, 3]);
    \n
    source

    pub fn extract_if<F>(&mut self, filter: F) -> ExtractIf<'_, T, F, A>
    where\n F: FnMut(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (extract_if)

    Creates an iterator which uses a closure to determine if an element should be removed.

    \n

    If the closure returns true, then the element is removed and yielded.\nIf the closure returns false, the element will remain in the vector and will not be yielded\nby the iterator.

    \n

    If the returned ExtractIf is not exhausted, e.g. because it is dropped without iterating\nor the iteration short-circuits, then the remaining elements will be retained.\nUse retain with a negated predicate if you do not need the returned iterator.

    \n

    Using this method is equivalent to the following code:

    \n\n
    let mut i = 0;\nwhile i < vec.len() {\n    if some_predicate(&mut vec[i]) {\n        let val = vec.remove(i);\n        // your code here\n    } else {\n        i += 1;\n    }\n}\n
    \n

    But extract_if is easier to use. extract_if is also more efficient,\nbecause it can backshift the elements of the array in bulk.

    \n

    Note that extract_if also lets you mutate every element in the filter closure,\nregardless of whether you choose to keep or remove it.

    \n
    §Examples
    \n

    Splitting an array into evens and odds, reusing the original allocation:

    \n\n
    #![feature(extract_if)]\nlet mut numbers = vec![1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 15];\n\nlet evens = numbers.extract_if(|x| *x % 2 == 0).collect::<Vec<_>>();\nlet odds = numbers;\n\nassert_eq!(evens, vec![2, 4, 6, 8, 14]);\nassert_eq!(odds, vec![1, 3, 5, 9, 11, 13, 15]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> Vec<T, A>
    where\n A: Allocator,

    source

    pub const fn new_in(alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A>.

    \n

    The vector will not allocate until elements are pushed onto it.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec: Vec<i32, _> = Vec::new_in(System);
    \n
    source

    pub fn with_capacity_in(capacity: usize, alloc: A) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n

    It is important to note that although the returned vector has the\nminimum capacity specified, the vector will have a zero length. For\nan explanation of the difference between length and capacity, see\nCapacity and reallocation.

    \n

    If it is important to know the exact allocated capacity of a Vec,\nalways use the capacity method after construction.

    \n

    For Vec<T, A> where T is a zero-sized type, there will be no allocation\nand the capacity will always be usize::MAX.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nlet mut vec = Vec::with_capacity_in(10, System);\n\n// The vector contains no items, even though it has capacity for more\nassert_eq!(vec.len(), 0);\nassert!(vec.capacity() >= 10);\n\n// These are all done without reallocating...\nfor i in 0..10 {\n    vec.push(i);\n}\nassert_eq!(vec.len(), 10);\nassert!(vec.capacity() >= 10);\n\n// ...but this may make the vector reallocate\nvec.push(11);\nassert_eq!(vec.len(), 11);\nassert!(vec.capacity() >= 11);\n\n// A vector of a zero-sized type will always over-allocate, since no\n// allocation is necessary\nlet vec_units = Vec::<(), System>::with_capacity_in(10, System);\nassert_eq!(vec_units.capacity(), usize::MAX);
    \n
    source

    pub fn try_with_capacity_in(\n capacity: usize,\n alloc: A,\n) -> Result<Vec<T, A>, TryReserveError>

    🔬This is a nightly-only experimental API. (allocator_api)

    Constructs a new, empty Vec<T, A> with at least the specified capacity\nwith the provided allocator.

    \n

    The vector will be able to hold at least capacity elements without\nreallocating. This method is allowed to allocate for more elements than\ncapacity. If capacity is 0, the vector will not allocate.

    \n
    §Errors
    \n

    Returns an error if the capacity exceeds isize::MAX bytes,\nor if the allocator reports allocation failure.

    \n
    source

    pub unsafe fn from_raw_parts_in(\n ptr: *mut T,\n length: usize,\n capacity: usize,\n alloc: A,\n) -> Vec<T, A>

    🔬This is a nightly-only experimental API. (allocator_api)

    Creates a Vec<T, A> directly from a pointer, a length, a capacity,\nand an allocator.

    \n
    §Safety
    \n

    This is highly unsafe, due to the number of invariants that aren’t\nchecked:

    \n
      \n
    • ptr must be currently allocated via the given allocator alloc.
    • \n
    • T needs to have the same alignment as what ptr was allocated with.\n(T having a less strict alignment is not sufficient, the alignment really\nneeds to be equal to satisfy the dealloc requirement that memory must be\nallocated and deallocated with the same layout.)
    • \n
    • The size of T times the capacity (ie. the allocated size in bytes) needs\nto be the same size as the pointer was allocated with. (Because similar to\nalignment, dealloc must be called with the same layout size.)
    • \n
    • length needs to be less than or equal to capacity.
    • \n
    • The first length values must be properly initialized values of type T.
    • \n
    • capacity needs to fit the layout size that the pointer was allocated with.
    • \n
    • The allocated size in bytes must be no larger than isize::MAX.\nSee the safety documentation of pointer::offset.
    • \n
    \n

    These requirements are always upheld by any ptr that has been allocated\nvia Vec<T, A>. Other allocation sources are allowed if the invariants are\nupheld.

    \n

    Violating these may cause problems like corrupting the allocator’s\ninternal data structures. For example it is not safe\nto build a Vec<u8> from a pointer to a C char array with length size_t.\nIt’s also not safe to build one from a Vec<u16> and its length, because\nthe allocator cares about the alignment, and these two types have different\nalignments. The buffer was allocated with alignment 2 (for u16), but after\nturning it into a Vec<u8> it’ll be deallocated with alignment 1.

    \n

    The ownership of ptr is effectively transferred to the\nVec<T> which may then deallocate, reallocate or change the\ncontents of memory pointed to by the pointer at will. Ensure\nthat nothing else uses the pointer after calling this\nfunction.

    \n
    §Examples
    \n
    #![feature(allocator_api)]\n\nuse std::alloc::System;\n\nuse std::ptr;\nuse std::mem;\n\nlet mut v = Vec::with_capacity_in(3, System);\nv.push(1);\nv.push(2);\nv.push(3);\n\n// Prevent running `v`'s destructor so we are in complete control\n// of the allocation.\nlet mut v = mem::ManuallyDrop::new(v);\n\n// Pull out the various important pieces of information about `v`\nlet p = v.as_mut_ptr();\nlet len = v.len();\nlet cap = v.capacity();\nlet alloc = v.allocator();\n\nunsafe {\n    // Overwrite memory with 4, 5, 6\n    for i in 0..len {\n        ptr::write(p.add(i), 4 + i);\n    }\n\n    // Put everything back together into a Vec\n    let rebuilt = Vec::from_raw_parts_in(p, len, cap, alloc.clone());\n    assert_eq!(rebuilt, [4, 5, 6]);\n}
    \n

    Using memory that was allocated elsewhere:

    \n\n
    #![feature(allocator_api)]\n\nuse std::alloc::{AllocError, Allocator, Global, Layout};\n\nfn main() {\n    let layout = Layout::array::<u32>(16).expect(\"overflow cannot happen\");\n\n    let vec = unsafe {\n        let mem = match Global.allocate(layout) {\n            Ok(mem) => mem.cast::<u32>().as_ptr(),\n            Err(AllocError) => return,\n        };\n\n        mem.write(1_000_000);\n\n        Vec::from_raw_parts_in(mem, 1, 16, Global)\n    };\n\n    assert_eq!(vec, &[1_000_000]);\n    assert_eq!(vec.capacity(), 16);\n}
    \n
    source

    pub fn into_raw_parts(self) -> (*mut T, usize, usize)

    🔬This is a nightly-only experimental API. (vec_into_raw_parts)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity).

    \n

    Returns the raw pointer to the underlying data, the length of\nthe vector (in elements), and the allocated capacity of the\ndata (in elements). These are the same arguments in the same\norder as the arguments to from_raw_parts.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(vec_into_raw_parts)]\nlet v: Vec<i32> = vec![-1, 0, 1];\n\nlet (ptr, len, cap) = v.into_raw_parts();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts(ptr, len, cap)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    source

    pub fn into_raw_parts_with_alloc(self) -> (*mut T, usize, usize, A)

    🔬This is a nightly-only experimental API. (allocator_api)

    Decomposes a Vec<T> into its raw components: (pointer, length, capacity, allocator).

    \n

    Returns the raw pointer to the underlying data, the length of the vector (in elements),\nthe allocated capacity of the data (in elements), and the allocator. These are the same\narguments in the same order as the arguments to from_raw_parts_in.

    \n

    After calling this function, the caller is responsible for the\nmemory previously managed by the Vec. The only way to do\nthis is to convert the raw pointer, length, and capacity back\ninto a Vec with the from_raw_parts_in function, allowing\nthe destructor to perform the cleanup.

    \n
    §Examples
    \n
    #![feature(allocator_api, vec_into_raw_parts)]\n\nuse std::alloc::System;\n\nlet mut v: Vec<i32, System> = Vec::new_in(System);\nv.push(-1);\nv.push(0);\nv.push(1);\n\nlet (ptr, len, cap, alloc) = v.into_raw_parts_with_alloc();\n\nlet rebuilt = unsafe {\n    // We can now make changes to the components, such as\n    // transmuting the raw pointer to a compatible type.\n    let ptr = ptr as *mut u32;\n\n    Vec::from_raw_parts_in(ptr, len, cap, alloc)\n};\nassert_eq!(rebuilt, [4294967295, 0, 1]);
    \n
    1.0.0 · source

    pub fn capacity(&self) -> usize

    Returns the total number of elements the vector can hold without\nreallocating.

    \n
    §Examples
    \n
    let mut vec: Vec<i32> = Vec::with_capacity(10);\nvec.push(42);\nassert!(vec.capacity() >= 10);
    \n
    1.0.0 · source

    pub fn reserve(&mut self, additional: usize)

    Reserves capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to\nspeculatively avoid frequent reallocations. After calling reserve,\ncapacity will be greater than or equal to self.len() + additional.\nDoes nothing if capacity is already sufficient.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve(10);\nassert!(vec.capacity() >= 11);
    \n
    1.0.0 · source

    pub fn reserve_exact(&mut self, additional: usize)

    Reserves the minimum capacity for at least additional more elements to\nbe inserted in the given Vec<T>. Unlike reserve, this will not\ndeliberately over-allocate to speculatively avoid frequent allocations.\nAfter calling reserve_exact, capacity will be greater than or equal to\nself.len() + additional. Does nothing if the capacity is already\nsufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer reserve if future insertions are expected.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1];\nvec.reserve_exact(10);\nassert!(vec.capacity() >= 11);
    \n
    1.57.0 · source

    pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

    Tries to reserve capacity for at least additional more elements to be inserted\nin the given Vec<T>. The collection may reserve more space to speculatively avoid\nfrequent reallocations. After calling try_reserve, capacity will be\ngreater than or equal to self.len() + additional if it returns\nOk(()). Does nothing if capacity is already sufficient. This method\npreserves the contents even if an error occurs.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.57.0 · source

    pub fn try_reserve_exact(\n &mut self,\n additional: usize,\n) -> Result<(), TryReserveError>

    Tries to reserve the minimum capacity for at least additional\nelements to be inserted in the given Vec<T>. Unlike try_reserve,\nthis will not deliberately over-allocate to speculatively avoid frequent\nallocations. After calling try_reserve_exact, capacity will be greater\nthan or equal to self.len() + additional if it returns Ok(()).\nDoes nothing if the capacity is already sufficient.

    \n

    Note that the allocator may give the collection more space than it\nrequests. Therefore, capacity can not be relied upon to be precisely\nminimal. Prefer try_reserve if future insertions are expected.

    \n
    §Errors
    \n

    If the capacity overflows, or the allocator reports a failure, then an error\nis returned.

    \n
    §Examples
    \n
    use std::collections::TryReserveError;\n\nfn process_data(data: &[u32]) -> Result<Vec<u32>, TryReserveError> {\n    let mut output = Vec::new();\n\n    // Pre-reserve the memory, exiting if we can't\n    output.try_reserve_exact(data.len())?;\n\n    // Now we know this can't OOM in the middle of our complex work\n    output.extend(data.iter().map(|&val| {\n        val * 2 + 5 // very complicated\n    }));\n\n    Ok(output)\n}
    \n
    1.0.0 · source

    pub fn shrink_to_fit(&mut self)

    Shrinks the capacity of the vector as much as possible.

    \n

    The behavior of this method depends on the allocator, which may either shrink the vector\nin-place or reallocate. The resulting vector might still have some excess capacity, just as\nis the case for with_capacity. See Allocator::shrink for more details.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to_fit();\nassert!(vec.capacity() >= 3);
    \n
    1.56.0 · source

    pub fn shrink_to(&mut self, min_capacity: usize)

    Shrinks the capacity of the vector with a lower bound.

    \n

    The capacity will remain at least as large as both the length\nand the supplied value.

    \n

    If the current capacity is less than the lower limit, this is a no-op.

    \n
    §Examples
    \n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\nassert!(vec.capacity() >= 10);\nvec.shrink_to(4);\nassert!(vec.capacity() >= 4);\nvec.shrink_to(0);\nassert!(vec.capacity() >= 3);
    \n
    1.0.0 · source

    pub fn into_boxed_slice(self) -> Box<[T], A>

    Converts the vector into Box<[T]>.

    \n

    Before doing the conversion, this method discards excess capacity like shrink_to_fit.

    \n
    §Examples
    \n
    let v = vec![1, 2, 3];\n\nlet slice = v.into_boxed_slice();
    \n

    Any excess capacity is removed:

    \n\n
    let mut vec = Vec::with_capacity(10);\nvec.extend([1, 2, 3]);\n\nassert!(vec.capacity() >= 10);\nlet slice = vec.into_boxed_slice();\nassert_eq!(slice.into_vec().capacity(), 3);
    \n
    1.0.0 · source

    pub fn truncate(&mut self, len: usize)

    Shortens the vector, keeping the first len elements and dropping\nthe rest.

    \n

    If len is greater or equal to the vector’s current length, this has\nno effect.

    \n

    The drain method can emulate truncate, but causes the excess\nelements to be returned instead of dropped.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n

    Truncating a five element vector to two elements:

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nvec.truncate(2);\nassert_eq!(vec, [1, 2]);
    \n

    No truncation occurs when len is greater than the vector’s current\nlength:

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(8);\nassert_eq!(vec, [1, 2, 3]);
    \n

    Truncating when len == 0 is equivalent to calling the clear\nmethod.

    \n\n
    let mut vec = vec![1, 2, 3];\nvec.truncate(0);\nassert_eq!(vec, []);
    \n
    1.7.0 · source

    pub fn as_slice(&self) -> &[T]

    Extracts a slice containing the entire vector.

    \n

    Equivalent to &s[..].

    \n
    §Examples
    \n
    use std::io::{self, Write};\nlet buffer = vec![1, 2, 3, 5, 8];\nio::sink().write(buffer.as_slice()).unwrap();
    \n
    1.7.0 · source

    pub fn as_mut_slice(&mut self) -> &mut [T]

    Extracts a mutable slice of the entire vector.

    \n

    Equivalent to &mut s[..].

    \n
    §Examples
    \n
    use std::io::{self, Read};\nlet mut buffer = vec![0; 3];\nio::repeat(0b101).read_exact(buffer.as_mut_slice()).unwrap();
    \n
    1.37.0 · source

    pub fn as_ptr(&self) -> *const T

    Returns a raw pointer to the vector’s buffer, or a dangling raw pointer\nvalid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    The caller must also ensure that the memory the pointer (non-transitively) points to\nis never written to (except inside an UnsafeCell) using this pointer or any pointer\nderived from it. If you need to mutate the contents of the slice, use as_mut_ptr.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize mutable references to the slice,\nor mutable references to specific elements you are planning on accessing through this pointer,\nas well as writing to those elements, may still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    let x = vec![1, 2, 4];\nlet x_ptr = x.as_ptr();\n\nunsafe {\n    for i in 0..x.len() {\n        assert_eq!(*x_ptr.add(i), 1 << i);\n    }\n}
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0, 1, 2];\n    let ptr1 = v.as_ptr();\n    let _ = ptr1.read();\n    let ptr2 = v.as_mut_ptr().offset(2);\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`\n    // because it mutated a different element:\n    let _ = ptr1.read();\n}
    \n
    1.37.0 · source

    pub fn as_mut_ptr(&mut self) -> *mut T

    Returns an unsafe mutable pointer to the vector’s buffer, or a dangling\nraw pointer valid for zero sized reads if the vector didn’t allocate.

    \n

    The caller must ensure that the vector outlives the pointer this\nfunction returns, or else it will end up pointing to garbage.\nModifying the vector may cause its buffer to be reallocated,\nwhich would also make any pointers to it invalid.

    \n

    This method guarantees that for the purpose of the aliasing model, this method\ndoes not materialize a reference to the underlying slice, and thus the returned pointer\nwill remain valid when mixed with other calls to as_ptr and as_mut_ptr.\nNote that calling other methods that materialize references to the slice,\nor references to specific elements you are planning on accessing through this pointer,\nmay still invalidate this pointer.\nSee the second example below for how this guarantee can be used.

    \n
    §Examples
    \n
    // Allocate vector big enough for 4 elements.\nlet size = 4;\nlet mut x: Vec<i32> = Vec::with_capacity(size);\nlet x_ptr = x.as_mut_ptr();\n\n// Initialize elements via raw pointer writes, then set length.\nunsafe {\n    for i in 0..size {\n        *x_ptr.add(i) = i as i32;\n    }\n    x.set_len(size);\n}\nassert_eq!(&*x, &[0, 1, 2, 3]);
    \n

    Due to the aliasing guarantee, the following code is legal:

    \n\n
    unsafe {\n    let mut v = vec![0];\n    let ptr1 = v.as_mut_ptr();\n    ptr1.write(1);\n    let ptr2 = v.as_mut_ptr();\n    ptr2.write(2);\n    // Notably, the write to `ptr2` did *not* invalidate `ptr1`:\n    ptr1.write(3);\n}
    \n
    source

    pub fn allocator(&self) -> &A

    🔬This is a nightly-only experimental API. (allocator_api)

    Returns a reference to the underlying allocator.

    \n
    1.0.0 · source

    pub unsafe fn set_len(&mut self, new_len: usize)

    Forces the length of the vector to new_len.

    \n

    This is a low-level operation that maintains none of the normal\ninvariants of the type. Normally changing the length of a vector\nis done using one of the safe operations instead, such as\ntruncate, resize, extend, or clear.

    \n
    §Safety
    \n
      \n
    • new_len must be less than or equal to capacity().
    • \n
    • The elements at old_len..new_len must be initialized.
    • \n
    \n
    §Examples
    \n

    This method can be useful for situations in which the vector\nis serving as a buffer for other code, particularly over FFI:

    \n\n
    pub fn get_dictionary(&self) -> Option<Vec<u8>> {\n    // Per the FFI method's docs, \"32768 bytes is always enough\".\n    let mut dict = Vec::with_capacity(32_768);\n    let mut dict_length = 0;\n    // SAFETY: When `deflateGetDictionary` returns `Z_OK`, it holds that:\n    // 1. `dict_length` elements were initialized.\n    // 2. `dict_length` <= the capacity (32_768)\n    // which makes `set_len` safe to call.\n    unsafe {\n        // Make the FFI call...\n        let r = deflateGetDictionary(self.strm, dict.as_mut_ptr(), &mut dict_length);\n        if r == Z_OK {\n            // ...and update the length to what was initialized.\n            dict.set_len(dict_length);\n            Some(dict)\n        } else {\n            None\n        }\n    }\n}
    \n

    While the following example is sound, there is a memory leak since\nthe inner vectors were not freed prior to the set_len call:

    \n\n
    let mut vec = vec![vec![1, 0, 0],\n                   vec![0, 1, 0],\n                   vec![0, 0, 1]];\n// SAFETY:\n// 1. `old_len..0` is empty so no elements need to be initialized.\n// 2. `0 <= capacity` always holds whatever `capacity` is.\nunsafe {\n    vec.set_len(0);\n}
    \n

    Normally, here, one would use clear instead to correctly drop\nthe contents and thus not leak memory.

    \n
    1.0.0 · source

    pub fn swap_remove(&mut self, index: usize) -> T

    Removes an element from the vector and returns it.

    \n

    The removed element is replaced by the last element of the vector.

    \n

    This does not preserve ordering of the remaining elements, but is O(1).\nIf you need to preserve the element order, use remove instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![\"foo\", \"bar\", \"baz\", \"qux\"];\n\nassert_eq!(v.swap_remove(1), \"bar\");\nassert_eq!(v, [\"foo\", \"qux\", \"baz\"]);\n\nassert_eq!(v.swap_remove(0), \"foo\");\nassert_eq!(v, [\"baz\", \"qux\"]);
    \n
    1.0.0 · source

    pub fn insert(&mut self, index: usize, element: T)

    Inserts an element at position index within the vector, shifting all\nelements after it to the right.

    \n
    §Panics
    \n

    Panics if index > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.insert(1, 4);\nassert_eq!(vec, [1, 4, 2, 3]);\nvec.insert(4, 5);\nassert_eq!(vec, [1, 4, 2, 3, 5]);
    \n
    §Time complexity
    \n

    Takes O(Vec::len) time. All items after the insertion index must be\nshifted to the right. In the worst case, all elements are shifted when\nthe insertion index is 0.

    \n
    1.0.0 · source

    pub fn remove(&mut self, index: usize) -> T

    Removes and returns the element at position index within the vector,\nshifting all elements after it to the left.

    \n

    Note: Because this shifts over the remaining elements, it has a\nworst-case performance of O(n). If you don’t need the order of elements\nto be preserved, use swap_remove instead. If you’d like to remove\nelements from the beginning of the Vec, consider using\nVecDeque::pop_front instead.

    \n
    §Panics
    \n

    Panics if index is out of bounds.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nassert_eq!(v.remove(1), 2);\nassert_eq!(v, [1, 3]);
    \n
    1.0.0 · source

    pub fn retain<F>(&mut self, f: F)
    where\n F: FnMut(&T) -> bool,

    Retains only the elements specified by the predicate.

    \n

    In other words, remove all elements e for which f(&e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain(|&x| x % 2 == 0);\nassert_eq!(vec, [2, 4]);
    \n

    Because the elements are visited exactly once in the original order,\nexternal state may be used to decide which elements to keep.

    \n\n
    let mut vec = vec![1, 2, 3, 4, 5];\nlet keep = [false, true, true, false, true];\nlet mut iter = keep.iter();\nvec.retain(|_| *iter.next().unwrap());\nassert_eq!(vec, [2, 3, 5]);
    \n
    1.61.0 · source

    pub fn retain_mut<F>(&mut self, f: F)
    where\n F: FnMut(&mut T) -> bool,

    Retains only the elements specified by the predicate, passing a mutable reference to it.

    \n

    In other words, remove all elements e such that f(&mut e) returns false.\nThis method operates in place, visiting each element exactly once in the\noriginal order, and preserves the order of the retained elements.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3, 4];\nvec.retain_mut(|x| if *x <= 3 {\n    *x += 1;\n    true\n} else {\n    false\n});\nassert_eq!(vec, [2, 3, 4]);
    \n
    1.16.0 · source

    pub fn dedup_by_key<F, K>(&mut self, key: F)
    where\n F: FnMut(&mut T) -> K,\n K: PartialEq,

    Removes all but the first of consecutive elements in the vector that resolve to the same\nkey.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![10, 20, 21, 30, 20];\n\nvec.dedup_by_key(|i| *i / 10);\n\nassert_eq!(vec, [10, 20, 30, 20]);
    \n
    1.16.0 · source

    pub fn dedup_by<F>(&mut self, same_bucket: F)
    where\n F: FnMut(&mut T, &mut T) -> bool,

    Removes all but the first of consecutive elements in the vector satisfying a given equality\nrelation.

    \n

    The same_bucket function is passed references to two elements from the vector and\nmust determine if the elements compare equal. The elements are passed in opposite order\nfrom their order in the slice, so if same_bucket(a, b) returns true, a is removed.

    \n

    If the vector is sorted, this removes all duplicates.

    \n
    §Examples
    \n
    let mut vec = vec![\"foo\", \"bar\", \"Bar\", \"baz\", \"bar\"];\n\nvec.dedup_by(|a, b| a.eq_ignore_ascii_case(b));\n\nassert_eq!(vec, [\"foo\", \"bar\", \"baz\", \"bar\"]);
    \n
    1.0.0 · source

    pub fn push(&mut self, value: T)

    Appends an element to the back of a collection.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2];\nvec.push(3);\nassert_eq!(vec, [1, 2, 3]);
    \n
    §Time complexity
    \n

    Takes amortized O(1) time. If the vector’s length would exceed its\ncapacity after the push, O(capacity) time is taken to copy the\nvector’s elements to a larger allocation. This expensive operation is\noffset by the capacity O(1) insertions it allows.

    \n
    source

    pub fn push_within_capacity(&mut self, value: T) -> Result<(), T>

    🔬This is a nightly-only experimental API. (vec_push_within_capacity)

    Appends an element if there is sufficient spare capacity, otherwise an error is returned\nwith the element.

    \n

    Unlike push this method will not reallocate when there’s insufficient capacity.\nThe caller should use reserve or try_reserve to ensure that there is enough capacity.

    \n
    §Examples
    \n

    A manual, panic-free alternative to FromIterator:

    \n\n
    #![feature(vec_push_within_capacity)]\n\nuse std::collections::TryReserveError;\nfn from_iter_fallible<T>(iter: impl Iterator<Item=T>) -> Result<Vec<T>, TryReserveError> {\n    let mut vec = Vec::new();\n    for value in iter {\n        if let Err(value) = vec.push_within_capacity(value) {\n            vec.try_reserve(1)?;\n            // this cannot fail, the previous line either returned or added at least 1 free slot\n            let _ = vec.push_within_capacity(value);\n        }\n    }\n    Ok(vec)\n}\nassert_eq!(from_iter_fallible(0..100), Ok(Vec::from_iter(0..100)));
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    1.0.0 · source

    pub fn pop(&mut self) -> Option<T>

    Removes the last element from a vector and returns it, or None if it\nis empty.

    \n

    If you’d like to pop the first element, consider using\nVecDeque::pop_front instead.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nassert_eq!(vec.pop(), Some(3));\nassert_eq!(vec, [1, 2]);
    \n
    §Time complexity
    \n

    Takes O(1) time.

    \n
    source

    pub fn pop_if<F>(&mut self, f: F) -> Option<T>
    where\n F: FnOnce(&mut T) -> bool,

    🔬This is a nightly-only experimental API. (vec_pop_if)

    Removes and returns the last element in a vector if the predicate\nreturns true, or None if the predicate returns false or the vector\nis empty.

    \n
    §Examples
    \n
    #![feature(vec_pop_if)]\n\nlet mut vec = vec![1, 2, 3, 4];\nlet pred = |x: &mut i32| *x % 2 == 0;\n\nassert_eq!(vec.pop_if(pred), Some(4));\nassert_eq!(vec, [1, 2, 3]);\nassert_eq!(vec.pop_if(pred), None);
    \n
    1.4.0 · source

    pub fn append(&mut self, other: &mut Vec<T, A>)

    Moves all the elements of other into self, leaving other empty.

    \n
    §Panics
    \n

    Panics if the new capacity exceeds isize::MAX bytes.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet mut vec2 = vec![4, 5, 6];\nvec.append(&mut vec2);\nassert_eq!(vec, [1, 2, 3, 4, 5, 6]);\nassert_eq!(vec2, []);
    \n
    1.6.0 · source

    pub fn drain<R>(&mut self, range: R) -> Drain<'_, T, A>
    where\n R: RangeBounds<usize>,

    Removes the specified range from the vector in bulk, returning all\nremoved elements as an iterator. If the iterator is dropped before\nbeing fully consumed, it drops the remaining removed elements.

    \n

    The returned iterator keeps a mutable borrow on the vector to optimize\nits implementation.

    \n
    §Panics
    \n

    Panics if the starting point is greater than the end point or if\nthe end point is greater than the length of the vector.

    \n
    §Leaking
    \n

    If the returned iterator goes out of scope without being dropped (due to\nmem::forget, for example), the vector may have lost and leaked\nelements arbitrarily, including elements outside the range.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\nlet u: Vec<_> = v.drain(1..).collect();\nassert_eq!(v, &[1]);\nassert_eq!(u, &[2, 3]);\n\n// A full range clears the vector, like `clear()` does\nv.drain(..);\nassert_eq!(v, &[]);
    \n
    1.0.0 · source

    pub fn clear(&mut self)

    Clears the vector, removing all values.

    \n

    Note that this method has no effect on the allocated capacity\nof the vector.

    \n
    §Examples
    \n
    let mut v = vec![1, 2, 3];\n\nv.clear();\n\nassert!(v.is_empty());
    \n
    1.0.0 · source

    pub fn len(&self) -> usize

    Returns the number of elements in the vector, also referred to\nas its ‘length’.

    \n
    §Examples
    \n
    let a = vec![1, 2, 3];\nassert_eq!(a.len(), 3);
    \n
    1.0.0 · source

    pub fn is_empty(&self) -> bool

    Returns true if the vector contains no elements.

    \n
    §Examples
    \n
    let mut v = Vec::new();\nassert!(v.is_empty());\n\nv.push(1);\nassert!(!v.is_empty());
    \n
    1.4.0 · source

    pub fn split_off(&mut self, at: usize) -> Vec<T, A>
    where\n A: Clone,

    Splits the collection into two at the given index.

    \n

    Returns a newly allocated vector containing the elements in the range\n[at, len). After the call, the original vector will be left containing\nthe elements [0, at) with its previous capacity unchanged.

    \n
      \n
    • If you want to take ownership of the entire contents and capacity of\nthe vector, see mem::take or mem::replace.
    • \n
    • If you don’t need the returned vector at all, see Vec::truncate.
    • \n
    • If you want to take ownership of an arbitrary subslice, or you don’t\nnecessarily want to store the removed items in a vector, see Vec::drain.
    • \n
    \n
    §Panics
    \n

    Panics if at > len.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nlet vec2 = vec.split_off(1);\nassert_eq!(vec, [1]);\nassert_eq!(vec2, [2, 3]);
    \n
    1.33.0 · source

    pub fn resize_with<F>(&mut self, new_len: usize, f: F)
    where\n F: FnMut() -> T,

    Resizes the Vec in-place so that len is equal to new_len.

    \n

    If new_len is greater than len, the Vec is extended by the\ndifference, with each additional slot filled with the result of\ncalling the closure f. The return values from f will end up\nin the Vec in the order they have been generated.

    \n

    If new_len is less than len, the Vec is simply truncated.

    \n

    This method uses a closure to create new values on every push. If\nyou’d rather Clone a given value, use Vec::resize. If you\nwant to use the Default trait to generate values, you can\npass Default::default as the second argument.

    \n
    §Examples
    \n
    let mut vec = vec![1, 2, 3];\nvec.resize_with(5, Default::default);\nassert_eq!(vec, [1, 2, 3, 0, 0]);\n\nlet mut vec = vec![];\nlet mut p = 1;\nvec.resize_with(4, || { p *= 2; p });\nassert_eq!(vec, [2, 4, 8, 16]);
    \n
    1.47.0 · source

    pub fn leak<'a>(self) -> &'a mut [T]
    where\n A: 'a,

    Consumes and leaks the Vec, returning a mutable reference to the contents,\n&'a mut [T]. Note that the type T must outlive the chosen lifetime\n'a. If the type has only static references, or none at all, then this\nmay be chosen to be 'static.

    \n

    As of Rust 1.57, this method does not reallocate or shrink the Vec,\nso the leaked allocation may include unused capacity that is not part\nof the returned slice.

    \n

    This function is mainly useful for data that lives for the remainder of\nthe program’s life. Dropping the returned reference will cause a memory\nleak.

    \n
    §Examples
    \n

    Simple usage:

    \n\n
    let x = vec![1, 2, 3];\nlet static_ref: &'static mut [usize] = x.leak();\nstatic_ref[0] += 1;\nassert_eq!(static_ref, &[2, 2, 3]);
    \n
    1.60.0 · source

    pub fn spare_capacity_mut(&mut self) -> &mut [MaybeUninit<T>]

    Returns the remaining spare capacity of the vector as a slice of\nMaybeUninit<T>.

    \n

    The returned slice can be used to fill the vector with data (e.g. by\nreading from a file) before marking the data as initialized using the\nset_len method.

    \n
    §Examples
    \n
    // Allocate vector big enough for 10 elements.\nlet mut v = Vec::with_capacity(10);\n\n// Fill in the first 3 elements.\nlet uninit = v.spare_capacity_mut();\nuninit[0].write(0);\nuninit[1].write(1);\nuninit[2].write(2);\n\n// Mark the first 3 elements of the vector as being initialized.\nunsafe {\n    v.set_len(3);\n}\n\nassert_eq!(&v, &[0, 1, 2]);
    \n
    source

    pub fn split_at_spare_mut(&mut self) -> (&mut [T], &mut [MaybeUninit<T>])

    🔬This is a nightly-only experimental API. (vec_split_at_spare)

    Returns vector content as a slice of T, along with the remaining spare\ncapacity of the vector as a slice of MaybeUninit<T>.

    \n

    The returned spare capacity slice can be used to fill the vector with data\n(e.g. by reading from a file) before marking the data as initialized using\nthe set_len method.

    \n

    Note that this is a low-level API, which should be used with care for\noptimization purposes. If you need to append data to a Vec\nyou can use push, extend, extend_from_slice,\nextend_from_within, insert, append, resize or\nresize_with, depending on your exact needs.

    \n
    §Examples
    \n
    #![feature(vec_split_at_spare)]\n\nlet mut v = vec![1, 1, 2];\n\n// Reserve additional space big enough for 10 elements.\nv.reserve(10);\n\nlet (init, uninit) = v.split_at_spare_mut();\nlet sum = init.iter().copied().sum::<u32>();\n\n// Fill in the next 4 elements.\nuninit[0].write(sum);\nuninit[1].write(sum * 2);\nuninit[2].write(sum * 3);\nuninit[3].write(sum * 4);\n\n// Mark the 4 elements of the vector as being initialized.\nunsafe {\n    let len = v.len();\n    v.set_len(len + 4);\n}\n\nassert_eq!(&v, &[1, 1, 2, 4, 8, 12, 16]);
    \n
    ",0,"jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<Z> Zeroize for Vec<Z>
    where\n Z: Zeroize,

    §

    fn zeroize(&mut self)

    “Best effort” zeroization for Vec.

    \n

    Ensures the entire capacity of the Vec is zeroed. Cannot ensure that\nprevious reallocations did not leave values on the heap.

    \n
    ","Zeroize","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    source§

    impl<T, A> DerefPure for Vec<T, A>
    where\n A: Allocator,

    ","DerefPure","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    1.0.0 · source§

    impl<T, A> Eq for Vec<T, A>
    where\n T: Eq,\n A: Allocator,

    ","Eq","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"],["
    §

    impl<Z> ZeroizeOnDrop for Vec<Z>
    where\n Z: ZeroizeOnDrop,

    ","ZeroizeOnDrop","jf_pcs::univariate_kzg::UnivariateKzgBatchProof"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/core/result/enum.Result.js b/type.impl/core/result/enum.Result.js index 4eb30e019..cdee32eee 100644 --- a/type.impl/core/result/enum.Result.js +++ b/type.impl/core/result/enum.Result.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_vid":[["
    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","jf_vid::VidResult"],["
    source§

    impl<T, E> Context<T, E> for Result<T, E>
    where\n E: StdError + Send + Sync + 'static,

    source§

    fn context<C>(self, context: C) -> Result<T, Error>
    where\n C: Display + Send + Sync + 'static,

    Wrap the error value with additional context.
    source§

    fn with_context<C, F>(self, context: F) -> Result<T, Error>
    where\n C: Display + Send + Sync + 'static,\n F: FnOnce() -> C,

    Wrap the error value with additional context that is evaluated lazily\nonly once an error does occur.
    ","Context","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    §

    impl<C, T, E> FromParallelIterator<Result<T, E>> for Result<C, E>
    where\n C: FromParallelIterator<T>,\n T: Send,\n E: Send,

    Collect an arbitrary Result-wrapped collection.

    \n

    If any item is Err, then all previous Ok items collected are\ndiscarded, and it returns that error. If there are multiple errors, the\none returned is not deterministic.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Result<C, E>
    where\n I: IntoParallelIterator<Item = Result<T, E>>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    §

    impl<T, E> IntoParallelIterator for Result<T, E>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Result<T, E> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_vid::VidResult"],["
    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) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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) -> U
    where\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) -> U
    where\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
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let 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
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use 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) -> T
    where\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) -> T
    where\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) -> T
    where\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) -> E
    where\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) -> E
    where\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) -> T
    where\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) -> E
    where\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) -> T
    where\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,"jf_vid::VidResult"],["
    §

    impl<T, E> ResultExt<T, E> for Result<T, E>

    §

    fn context<C, E2>(self, context: C) -> Result<T, E2>
    where\n C: IntoError<E2, Source = E>,\n E2: Error + ErrorCompat,

    Extend a Result’s error with additional context-sensitive information. Read more
    §

    fn with_context<F, C, E2>(self, context: F) -> Result<T, E2>
    where\n F: FnOnce(&mut E) -> C,\n C: IntoError<E2, Source = E>,\n E2: Error + ErrorCompat,

    Extend a Result’s error with lazily-generated context-sensitive information. Read more
    §

    fn whatever_context<S, E2>(self, context: S) -> Result<T, E2>
    where\n S: Into<String>,\n E2: FromString,\n E: Into<<E2 as FromString>::Source>,

    Extend a Result’s error with information from a string. Read more
    §

    fn with_whatever_context<F, S, E2>(self, context: F) -> Result<T, E2>
    where\n F: FnOnce(&mut E) -> S,\n S: Into<String>,\n E2: FromString,\n E: Into<<E2 as FromString>::Source>,

    Extend a Result’s error with information from a\nlazily-generated string. Read more
    §

    fn boxed<'a>(self) -> Result<T, Box<dyn Error + Sync + Send + 'a>>
    where\n E: Error + Send + Sync + 'a,

    Convert a Result’s error into a boxed trait object\ncompatible with multiple threads. Read more
    §

    fn boxed_local<'a>(self) -> Result<T, Box<dyn Error + 'a>>
    where\n E: Error + 'a,

    Convert a Result’s error into a boxed trait object. Read more
    ","ResultExt","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","jf_vid::VidResult"]] +"jf_vid":[["
    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","jf_vid::VidResult"],["
    source§

    impl<T, E> Context<T, E> for Result<T, E>
    where\n E: StdError + Send + Sync + 'static,

    source§

    fn context<C>(self, context: C) -> Result<T, Error>
    where\n C: Display + Send + Sync + 'static,

    Wrap the error value with additional context.
    source§

    fn with_context<C, F>(self, context: F) -> Result<T, Error>
    where\n C: Display + Send + Sync + 'static,\n F: FnOnce() -> C,

    Wrap the error value with additional context that is evaluated lazily\nonly once an error does occur.
    ","Context","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    §

    impl<C, T, E> FromParallelIterator<Result<T, E>> for Result<C, E>
    where\n C: FromParallelIterator<T>,\n T: Send,\n E: Send,

    Collect an arbitrary Result-wrapped collection.

    \n

    If any item is Err, then all previous Ok items collected are\ndiscarded, and it returns that error. If there are multiple errors, the\none returned is not deterministic.

    \n
    §

    fn from_par_iter<I>(par_iter: I) -> Result<C, E>
    where\n I: IntoParallelIterator<Item = Result<T, E>>,

    Creates an instance of the collection from the parallel iterator par_iter. Read more
    ","FromParallelIterator>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    §

    impl<T, E> IntoParallelIterator for Result<T, E>
    where\n T: Send,

    §

    type Item = T

    The type of item that the parallel iterator will produce.
    §

    type Iter = IntoIter<T>

    The parallel iterator type that will be created.
    §

    fn into_par_iter(self) -> <Result<T, E> as IntoParallelIterator>::Iter

    Converts self into a parallel iterator. Read more
    ","IntoParallelIterator","jf_vid::VidResult"],["
    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) -> Self
    where\n Self: Sized,

    Compares and returns the maximum of two values. Read more
    1.21.0 · source§

    fn min(self, other: Self) -> Self
    where\n Self: Sized,

    Compares and returns the minimum of two values. Read more
    1.50.0 · source§

    fn clamp(self, min: Self, max: Self) -> Self
    where\n Self: Sized + PartialOrd,

    Restrict a value to a certain interval. Read more
    ","Ord","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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,"jf_vid::VidResult"],["
    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) -> U
    where\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) -> U
    where\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
    1.76.0 · source

    pub fn inspect<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&T),

    Calls a function with a reference to the contained value if Ok.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    let 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
    1.76.0 · source

    pub fn inspect_err<F>(self, f: F) -> Result<T, E>
    where\n F: FnOnce(&E),

    Calls a function with a reference to the contained value if Err.

    \n

    Returns the original result.

    \n
    §Examples
    \n
    use 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) -> T
    where\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) -> T
    where\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) -> T
    where\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) -> E
    where\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) -> E
    where\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) -> T
    where\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) -> E
    where\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) -> T
    where\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,"jf_vid::VidResult"],["
    §

    impl<T, E> ResultExt<T, E> for Result<T, E>

    §

    fn context<C, E2>(self, context: C) -> Result<T, E2>
    where\n C: IntoError<E2, Source = E>,\n E2: Error + ErrorCompat,

    Extend a Result’s error with additional context-sensitive information. Read more
    §

    fn with_context<F, C, E2>(self, context: F) -> Result<T, E2>
    where\n F: FnOnce(&mut E) -> C,\n C: IntoError<E2, Source = E>,\n E2: Error + ErrorCompat,

    Extend a Result’s error with lazily-generated context-sensitive information. Read more
    §

    fn whatever_context<S, E2>(self, context: S) -> Result<T, E2>
    where\n S: Into<String>,\n E2: FromString,\n E: Into<<E2 as FromString>::Source>,

    Extend a Result’s error with information from a string. Read more
    §

    fn with_whatever_context<F, S, E2>(self, context: F) -> Result<T, E2>
    where\n F: FnOnce(&mut E) -> S,\n S: Into<String>,\n E2: FromString,\n E: Into<<E2 as FromString>::Source>,

    Extend a Result’s error with information from a\nlazily-generated string. Read more
    §

    fn boxed<'a>(self) -> Result<T, Box<dyn Error + Send + Sync + 'a>>
    where\n E: Error + Send + Sync + 'a,

    Convert a Result’s error into a boxed trait object\ncompatible with multiple threads. Read more
    §

    fn boxed_local<'a>(self) -> Result<T, Box<dyn Error + 'a>>
    where\n E: Error + 'a,

    Convert a Result’s error into a boxed trait object. Read more
    ","ResultExt","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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>","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    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","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> Copy for Result<T, E>
    where\n T: Copy,\n E: Copy,

    ","Copy","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> Eq for Result<T, E>
    where\n T: Eq,\n E: Eq,

    ","Eq","jf_vid::VidResult"],["
    1.0.0 · source§

    impl<T, E> StructuralPartialEq for Result<T, E>

    ","StructuralPartialEq","jf_vid::VidResult"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_merkle_tree/append_only/struct.MerkleTree.js b/type.impl/jf_merkle_tree/append_only/struct.MerkleTree.js index ebea54a5b..a0c64365a 100644 --- a/type.impl/jf_merkle_tree/append_only/struct.MerkleTree.js +++ b/type.impl/jf_merkle_tree/append_only/struct.MerkleTree.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_merkle_tree":[["
    source§

    impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source§

    fn push(\n &mut self,\n elem: impl Borrow<Self::Element>,\n) -> Result<(), MerkleTreeError>

    Insert a new value at the leftmost available slot Read more
    source§

    fn extend(\n &mut self,\n elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,\n) -> Result<(), MerkleTreeError>

    Insert a list of new values at the leftmost available slots Read more
    ","AppendableMerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> MerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    ",0,"jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, const ARITY: usize, T> MerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source

    pub fn from_elems(\n height: Option<usize>,\n elems: impl IntoIterator<Item = impl Borrow<E>>,\n) -> Result<Self, MerkleTreeError>

    Construct a new Merkle tree with given height from a data slice

    \n
      \n
    • height - height of the Merkle tree, if None, it will calculate the\nminimum height that could hold all elements.
    • \n
    • elems - an iterator to all elements
    • \n
    • returns - A constructed Merkle tree, or Err() if errors
    • \n
    \n
    ",0,"jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &MerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"]] +"jf_merkle_tree":[["
    source§

    impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for MerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source§

    fn push(\n &mut self,\n elem: impl Borrow<Self::Element>,\n) -> Result<(), MerkleTreeError>

    Insert a new value at the leftmost available slot Read more
    source§

    fn extend(\n &mut self,\n elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,\n) -> Result<(), MerkleTreeError>

    Insert a list of new values at the leftmost available slots Read more
    ","AppendableMerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> MerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    ",0,"jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, const ARITY: usize, T> MerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source

    pub fn from_elems(\n height: Option<usize>,\n elems: impl IntoIterator<Item = impl Borrow<E>>,\n) -> Result<Self, MerkleTreeError>

    Construct a new Merkle tree with given height from a data slice

    \n
      \n
    • height - height of the Merkle tree, if None, it will calculate the\nminimum height that could hold all elements.
    • \n
    • elems - an iterator to all elements
    • \n
    • returns - A constructed Merkle tree, or Err() if errors
    • \n
    \n
    ",0,"jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &MerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for MerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::examples::IntervalMerkleTree","jf_merkle_tree::hasher::GenericHasherMerkleTree","jf_merkle_tree::prelude::RescueMerkleTree","jf_merkle_tree::prelude::SHA3MerkleTree"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_merkle_tree/light_weight/struct.LightWeightMerkleTree.js b/type.impl/jf_merkle_tree/light_weight/struct.LightWeightMerkleTree.js index 9dc2e058a..2e11f13dd 100644 --- a/type.impl/jf_merkle_tree/light_weight/struct.LightWeightMerkleTree.js +++ b/type.impl/jf_merkle_tree/light_weight/struct.LightWeightMerkleTree.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_merkle_tree":[["
    source§

    impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for LightWeightMerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source§

    fn push(\n &mut self,\n elem: impl Borrow<Self::Element>,\n) -> Result<(), MerkleTreeError>

    Insert a new value at the leftmost available slot Read more
    source§

    fn extend(\n &mut self,\n elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,\n) -> Result<(), MerkleTreeError>

    Insert a list of new values at the leftmost available slots Read more
    ","AppendableMerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> LightWeightMerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    ",0,"jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, const ARITY: usize, T> LightWeightMerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source

    pub fn from_elems(\n height: Option<usize>,\n elems: impl IntoIterator<Item = impl Borrow<E>>,\n) -> Result<Self, MerkleTreeError>

    Construct a new Merkle tree with given height from a data slice

    \n
      \n
    • height - height of the Merkle tree, if None, it will calculate the\nminimum height that could hold all elements.
    • \n
    • elems - an iterator to all elements
    • \n
    • returns - A constructed Merkle tree, or Err() if errors
    • \n
    \n
    ",0,"jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &LightWeightMerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"]] +"jf_merkle_tree":[["
    source§

    impl<E, H, const ARITY: usize, T> AppendableMerkleTreeScheme for LightWeightMerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source§

    fn push(\n &mut self,\n elem: impl Borrow<Self::Element>,\n) -> Result<(), MerkleTreeError>

    Insert a new value at the leftmost available slot Read more
    source§

    fn extend(\n &mut self,\n elems: impl IntoIterator<Item = impl Borrow<Self::Element>>,\n) -> Result<(), MerkleTreeError>

    Insert a list of new values at the leftmost available slots Read more
    ","AppendableMerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> LightWeightMerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    ",0,"jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, const ARITY: usize, T> LightWeightMerkleTree<E, H, u64, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, u64, T>,\n T: NodeValue,

    source

    pub fn from_elems(\n height: Option<usize>,\n elems: impl IntoIterator<Item = impl Borrow<E>>,\n) -> Result<Self, MerkleTreeError>

    Construct a new Merkle tree with given height from a data slice

    \n
      \n
    • height - height of the Merkle tree, if None, it will calculate the\nminimum height that could hold all elements.
    • \n
    • elems - an iterator to all elements
    • \n
    • returns - A constructed Merkle tree, or Err() if errors
    • \n
    \n
    ",0,"jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &LightWeightMerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for LightWeightMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::prelude::RescueLightWeightMerkleTree","jf_merkle_tree::prelude::LightWeightSHA3MerkleTree"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.js b/type.impl/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.js index 53220c4ae..4602f40ba 100644 --- a/type.impl/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.js +++ b/type.impl/jf_merkle_tree/universal_merkle_tree/struct.UniversalMerkleTree.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_merkle_tree":[["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> UniversalMerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn universal_forget(\n &mut self,\n pos: Self::Index,\n) -> LookupResult<Self::Element, Self::MembershipProof, Self::NonMembershipProof>

    WARN(#495): this method breaks non-membership proofs.

    \n
    source§

    fn non_membership_remember(\n &mut self,\n pos: Self::Index,\n proof: impl Borrow<Self::NonMembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” an empty leaf into the tree using its proof. Read more
    ","ForgetableUniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &UniversalMerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn persistent_update_with<F>(\n &self,\n pos: impl Borrow<Self::Index>,\n f: F,\n) -> Result<Self, MerkleTreeError>
    where\n F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

    A persistent update_with interface, check\nPersistentUniversalMerkleTreeScheme and\nUniversalMerkleTreeScheme::update_with.
    source§

    fn persistent_update(\n &self,\n pos: impl Borrow<Self::Index>,\n elem: impl Borrow<Self::Element>,\n) -> Result<Self, MerkleTreeError>

    A non destructive update interface, check\nPersistentUniversalMerkleTreeScheme and\nUniversalMerkleTreeScheme::update.
    source§

    fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

    ","PersistentUniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    source

    pub fn from_kv_set<BI, BE>(\n height: usize,\n data: impl IntoIterator<Item = impl Borrow<(BI, BE)>>,\n) -> Result<Self, MerkleTreeError>
    where\n BI: Borrow<I>,\n BE: Borrow<E>,

    Build a universal merkle tree from a key-value set.

    \n
      \n
    • height - height of the merkle tree
    • \n
    • data - an iterator of key-value pairs. Could be a hashmap or simply\nan array or a slice of (key, value) pairs
    • \n
    \n
    ",0,"jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type NonMembershipProof = MerkleProof<E, I, T, ARITY>

    Non membership proof for a given index
    §

    type BatchNonMembershipProof = ()

    Batch non membership proof
    source§

    fn update_with<F>(\n &mut self,\n pos: impl Borrow<Self::Index>,\n f: F,\n) -> Result<LookupResult<E, (), ()>, MerkleTreeError>
    where\n F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

    Apply an update function f at a given position Read more
    source§

    fn non_membership_verify(\n &self,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::NonMembershipProof>,\n) -> Result<bool, MerkleTreeError>

    Verify an index is not in this merkle tree Read more
    source§

    fn universal_lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, Self::NonMembershipProof>

    Returns the leaf value given a position Read more
    source§

    fn update(\n &mut self,\n pos: impl Borrow<Self::Index>,\n elem: impl Borrow<Self::Element>,\n) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

    Update the leaf value at a given position Read more
    source§

    fn remove(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

    Remove a leaf at the given position Read more
    ","UniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::prelude::RescueSparseMerkleTree"]] +"jf_merkle_tree":[["
    source§

    impl<E, H, I, const ARITY: usize, T> Clone for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Clone,\n H: DigestAlgorithm<E, I, T> + Clone,\n I: Index + Clone,\n T: NodeValue + Clone,

    source§

    fn clone(&self) -> UniversalMerkleTree<E, H, I, ARITY, T>

    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
    ","Clone","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Debug for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Debug,\n H: DigestAlgorithm<E, I, T> + Debug,\n I: Index + Debug,\n T: NodeValue + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<'de, E, H, I, const ARITY: usize, T> Deserialize<'de> for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
    where\n __D: Deserializer<'de>,

    Deserialize this value from the given Serde deserializer. Read more
    ","Deserialize<'de>","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn from_commitment(com: impl Borrow<Self::Commitment>) -> Self

    Rebuild a merkle tree from a commitment.\nReturn a tree which is entirely forgotten.
    source§

    fn forget(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<Self::Element, Self::MembershipProof, ()>

    Trim the leaf at position i from memory, if present.\nShould not trim if position i is the last inserted leaf position.\nReturn is identical to result if get_leaf(pos) were called before this\ncall.
    source§

    fn remember(\n &mut self,\n pos: impl Borrow<Self::Index>,\n element: impl Borrow<Self::Element>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” a leaf into the tree using its proof.\nReturns Ok(()) if insertion is successful, or Err(err) if the\nproof disagrees with the merkle tree
    ","ForgetableMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> ForgetableUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn universal_forget(\n &mut self,\n pos: Self::Index,\n) -> LookupResult<Self::Element, Self::MembershipProof, Self::NonMembershipProof>

    WARN(#495): this method breaks non-membership proofs.

    \n
    source§

    fn non_membership_remember(\n &mut self,\n pos: Self::Index,\n proof: impl Borrow<Self::NonMembershipProof>,\n) -> Result<(), MerkleTreeError>

    “Re-insert” an empty leaf into the tree using its proof. Read more
    ","ForgetableUniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Hash for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Hash,\n H: DigestAlgorithm<E, I, T> + Hash,\n I: Index + Hash,\n T: NodeValue + Hash,

    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\n H: Hasher,\n Self: Sized,

    Feeds a slice of this type into the given Hasher. Read more
    ","Hash","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> IntoIterator for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Item = (I, E)

    The type of the elements being iterated over.
    §

    type IntoIter = MerkleTreeIntoIter<E, I, T>

    Which kind of iterator are we turning this into?
    source§

    fn into_iter(self) -> Self::IntoIter

    Creates an iterator from a value. Read more
    ","IntoIterator","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> MerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type Element = E

    Merkle tree element type
    §

    type Index = I

    Index type for this merkle tree
    §

    type NodeValue = T

    Internal and root node value
    §

    type MembershipProof = MerkleProof<E, I, T, ARITY>

    Merkle proof
    §

    type BatchMembershipProof = ()

    Batch proof
    §

    type Commitment = MerkleTreeCommitment<T>

    Merkle tree commitment
    source§

    const ARITY: usize = ARITY

    Tree ARITY
    source§

    fn height(&self) -> usize

    Return the height of this merkle tree
    source§

    fn capacity(&self) -> BigUint

    Return the maximum allowed number leaves
    source§

    fn num_leaves(&self) -> u64

    Return the current number of leaves
    source§

    fn commitment(&self) -> Self::Commitment

    Return a merkle commitment
    source§

    fn lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, ()>

    Returns the leaf value given a position Read more
    source§

    fn verify(\n root: impl Borrow<Self::NodeValue>,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::MembershipProof>,\n) -> Result<Result<(), ()>, MerkleTreeError>

    Verify an element is a leaf of a Merkle tree given the proof Read more
    source§

    fn iter(&self) -> MerkleTreeIter<'_, E, I, T>

    Return an iterator that iterates through all element that are not\nforgetton
    ","MerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + PartialEq,\n H: DigestAlgorithm<E, I, T> + PartialEq,\n I: Index + PartialEq,\n T: NodeValue + PartialEq,

    source§

    fn eq(&self, other: &UniversalMerkleTree<E, H, I, ARITY, T>) -> 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","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> PersistentUniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source§

    fn persistent_update_with<F>(\n &self,\n pos: impl Borrow<Self::Index>,\n f: F,\n) -> Result<Self, MerkleTreeError>
    where\n F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

    A persistent update_with interface, check\nPersistentUniversalMerkleTreeScheme and\nUniversalMerkleTreeScheme::update_with.
    source§

    fn persistent_update(\n &self,\n pos: impl Borrow<Self::Index>,\n elem: impl Borrow<Self::Element>,\n) -> Result<Self, MerkleTreeError>

    A non destructive update interface, check\nPersistentUniversalMerkleTreeScheme and\nUniversalMerkleTreeScheme::update.
    source§

    fn persistent_remove(&self, pos: Self::Index) -> Result<Self, MerkleTreeError>

    ","PersistentUniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Serialize for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + CanonicalSerialize + CanonicalDeserialize,\n H: DigestAlgorithm<E, I, T>,\n I: Index + CanonicalSerialize + CanonicalDeserialize,\n T: NodeValue,

    source§

    fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
    where\n __S: Serializer,

    Serialize this value into the given Serde serializer. Read more
    ","Serialize","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    source

    pub fn new(height: usize) -> Self

    Initialize an empty Merkle tree.

    \n
    source

    pub fn from_kv_set<BI, BE>(\n height: usize,\n data: impl IntoIterator<Item = impl Borrow<(BI, BE)>>,\n) -> Result<Self, MerkleTreeError>
    where\n BI: Borrow<I>,\n BE: Borrow<E>,

    Build a universal merkle tree from a key-value set.

    \n
      \n
    • height - height of the merkle tree
    • \n
    • data - an iterator of key-value pairs. Could be a hashmap or simply\nan array or a slice of (key, value) pairs
    • \n
    \n
    ",0,"jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> UniversalMerkleTreeScheme for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index + ToTraversalPath<ARITY>,\n T: NodeValue,

    §

    type NonMembershipProof = MerkleProof<E, I, T, ARITY>

    Non membership proof for a given index
    §

    type BatchNonMembershipProof = ()

    Batch non membership proof
    source§

    fn update_with<F>(\n &mut self,\n pos: impl Borrow<Self::Index>,\n f: F,\n) -> Result<LookupResult<E, (), ()>, MerkleTreeError>
    where\n F: FnOnce(Option<&Self::Element>) -> Option<Self::Element>,

    Apply an update function f at a given position Read more
    source§

    fn non_membership_verify(\n &self,\n pos: impl Borrow<Self::Index>,\n proof: impl Borrow<Self::NonMembershipProof>,\n) -> Result<bool, MerkleTreeError>

    Verify an index is not in this merkle tree Read more
    source§

    fn universal_lookup(\n &self,\n pos: impl Borrow<Self::Index>,\n) -> LookupResult<&Self::Element, Self::MembershipProof, Self::NonMembershipProof>

    Returns the leaf value given a position Read more
    source§

    fn update(\n &mut self,\n pos: impl Borrow<Self::Index>,\n elem: impl Borrow<Self::Element>,\n) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

    Update the leaf value at a given position Read more
    source§

    fn remove(\n &mut self,\n pos: impl Borrow<Self::Index>,\n) -> Result<LookupResult<Self::Element, (), ()>, MerkleTreeError>

    Remove a leaf at the given position Read more
    ","UniversalMerkleTreeScheme","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> Eq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element + Eq,\n H: DigestAlgorithm<E, I, T> + Eq,\n I: Index + Eq,\n T: NodeValue + Eq,

    ","Eq","jf_merkle_tree::prelude::RescueSparseMerkleTree"],["
    source§

    impl<E, H, I, const ARITY: usize, T> StructuralPartialEq for UniversalMerkleTree<E, H, I, ARITY, T>
    where\n E: Element,\n H: DigestAlgorithm<E, I, T>,\n I: Index,\n T: NodeValue,

    ","StructuralPartialEq","jf_merkle_tree::prelude::RescueSparseMerkleTree"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js index 6daf9b467..ffb0444bf 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateProverParam.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateProverParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Clone for UnivariateProverParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,

    source§

    fn clone(&self) -> UnivariateProverParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Debug for UnivariateProverParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Default for UnivariateProverParam<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,

    source§

    fn default() -> UnivariateProverParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> PartialEq for UnivariateProverParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateProverParam<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","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Valid for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateProverParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateProverParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Eq for UnivariateProverParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateProverParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::CommitKey"]] +"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateProverParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Clone for UnivariateProverParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,

    source§

    fn clone(&self) -> UnivariateProverParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Debug for UnivariateProverParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Default for UnivariateProverParam<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,

    source§

    fn default() -> UnivariateProverParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> PartialEq for UnivariateProverParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateProverParam<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","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Valid for UnivariateProverParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateProverParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateProverParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> Eq for UnivariateProverParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::CommitKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateProverParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::CommitKey"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js index eccb90557..45b936ed0 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateUniversalParams.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateUniversalParams<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> CanonicalSerialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Clone for UnivariateUniversalParams<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateUniversalParams<E>

    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
    ","Clone","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Debug for UnivariateUniversalParams<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Default for UnivariateUniversalParams<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,\n <E as Pairing>::G2Affine: Default,

    source§

    fn default() -> UnivariateUniversalParams<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> PartialEq for UnivariateUniversalParams<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateUniversalParams<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","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuredReferenceString for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn extract_prover_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam

    Extract the prover parameters from the public parameters.

    \n
    source§

    fn extract_verifier_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam

    Extract the verifier parameters from the public parameters.

    \n
    source§

    fn trim_with_verifier_degree(\n &self,\n prover_supported_degree: usize,\n verifier_supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    source§

    fn trim(\n &self,\n supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    §

    type ProverParam = UnivariateProverParam<E>

    Prover parameters
    §

    type VerifierParam = UnivariateVerifierParam<E>

    Verifier parameters
    source§

    fn load_srs_from_file(\n _supported_degree: usize,\n _file: Option<&str>,\n) -> Result<Self, PCSError>

    Load public parameter in production environment.\nThese parameters are loaded from files with serialized pp bytes, and\nthe actual setup is usually carried out via MPC and should be\nimplemented else where. We only load them into memory here. Read more
    ","StructuredReferenceString","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> UnivariateUniversalParams<E>
    where\n E: Pairing,

    source

    pub fn max_degree(&self) -> usize

    Returns the maximum supported degree

    \n
    ",0,"jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Valid for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateUniversalParams<E>> + Send,\n) -> Result<(), SerializationError>

    ","Valid","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Eq for UnivariateUniversalParams<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuralPartialEq for UnivariateUniversalParams<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::UniversalSrs"]] +"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateUniversalParams<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> CanonicalSerialize for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Clone for UnivariateUniversalParams<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateUniversalParams<E>

    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
    ","Clone","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Debug for UnivariateUniversalParams<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Default for UnivariateUniversalParams<E>
    where\n E: Default + Pairing,\n <E as Pairing>::G1Affine: Default,\n <E as Pairing>::G2Affine: Default,

    source§

    fn default() -> UnivariateUniversalParams<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> PartialEq for UnivariateUniversalParams<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateUniversalParams<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","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuredReferenceString for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn extract_prover_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam

    Extract the prover parameters from the public parameters.

    \n
    source§

    fn extract_verifier_param(\n &self,\n supported_degree: usize,\n) -> <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam

    Extract the verifier parameters from the public parameters.

    \n
    source§

    fn trim_with_verifier_degree(\n &self,\n prover_supported_degree: usize,\n verifier_supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    source§

    fn trim(\n &self,\n supported_degree: usize,\n) -> Result<(<UnivariateUniversalParams<E> as StructuredReferenceString>::ProverParam, <UnivariateUniversalParams<E> as StructuredReferenceString>::VerifierParam), PCSError>

    Trim the universal parameters to specialize the public parameters\nfor univariate polynomials to the given supported_degree, and\nreturns committer key and verifier key. supported_degree should\nbe in range 1..params.len()

    \n
    §

    type ProverParam = UnivariateProverParam<E>

    Prover parameters
    §

    type VerifierParam = UnivariateVerifierParam<E>

    Verifier parameters
    source§

    fn load_srs_from_file(\n _supported_degree: usize,\n _file: Option<&str>,\n) -> Result<Self, PCSError>

    Load public parameter in production environment.\nThese parameters are loaded from files with serialized pp bytes, and\nthe actual setup is usually carried out via MPC and should be\nimplemented else where. We only load them into memory here. Read more
    ","StructuredReferenceString","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> UnivariateUniversalParams<E>
    where\n E: Pairing,

    source

    pub fn max_degree(&self) -> usize

    Returns the maximum supported degree

    \n
    ",0,"jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Valid for UnivariateUniversalParams<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateUniversalParams<E>> + Send,\n) -> Result<(), SerializationError>

    ","Valid","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> Eq for UnivariateUniversalParams<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::UniversalSrs"],["
    source§

    impl<E> StructuralPartialEq for UnivariateUniversalParams<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::UniversalSrs"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js index bcd5bfd99..41dead1b4 100644 --- a/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js +++ b/type.impl/jf_pcs/univariate_kzg/srs/struct.UnivariateVerifierParam.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateVerifierParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Clone for UnivariateVerifierParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateVerifierParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Debug for UnivariateVerifierParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Default for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn default() -> UnivariateVerifierParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> PartialEq for UnivariateVerifierParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateVerifierParam<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","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Valid for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateVerifierParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateVerifierParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Eq for UnivariateVerifierParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateVerifierParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::OpenKey"]] +"jf_plonk":[["
    source§

    impl<E> CanonicalDeserialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn deserialize_with_mode<R>(\n reader: R,\n compress: Compress,\n validate: Validate,\n) -> Result<UnivariateVerifierParam<E>, SerializationError>
    where\n R: Read,

    The general deserialize method that takes in customization flags.
    §

    fn deserialize_compressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_compressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed<R>(reader: R) -> Result<Self, SerializationError>
    where\n R: Read,

    §

    fn deserialize_uncompressed_unchecked<R>(\n reader: R,\n) -> Result<Self, SerializationError>
    where\n R: Read,

    ","CanonicalDeserialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> CanonicalSerialize for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn serialize_with_mode<W>(\n &self,\n writer: W,\n compress: Compress,\n) -> Result<(), SerializationError>
    where\n W: Write,

    The general serialize method that takes in customization flags.
    source§

    fn serialized_size(&self, compress: Compress) -> usize

    §

    fn serialize_compressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn compressed_size(&self) -> usize

    §

    fn serialize_uncompressed<W>(&self, writer: W) -> Result<(), SerializationError>
    where\n W: Write,

    §

    fn uncompressed_size(&self) -> usize

    ","CanonicalSerialize","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Clone for UnivariateVerifierParam<E>
    where\n E: Clone + Pairing,\n <E as Pairing>::G1Affine: Clone,\n <E as Pairing>::G2Affine: Clone,

    source§

    fn clone(&self) -> UnivariateVerifierParam<E>

    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
    ","Clone","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Debug for UnivariateVerifierParam<E>
    where\n E: Debug + Pairing,\n <E as Pairing>::G1Affine: Debug,\n <E as Pairing>::G2Affine: Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

    Formats the value using the given formatter. Read more
    ","Debug","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Default for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn default() -> UnivariateVerifierParam<E>

    Returns the “default value” for a type. Read more
    ","Default","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> PartialEq for UnivariateVerifierParam<E>
    where\n E: PartialEq + Pairing,\n <E as Pairing>::G1Affine: PartialEq,\n <E as Pairing>::G2Affine: PartialEq,

    source§

    fn eq(&self, other: &UnivariateVerifierParam<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","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Valid for UnivariateVerifierParam<E>
    where\n E: Pairing,

    source§

    fn check(&self) -> Result<(), SerializationError>

    source§

    fn batch_check<'a>(\n batch: impl Iterator<Item = &'a UnivariateVerifierParam<E>> + Send,\n) -> Result<(), SerializationError>
    where\n UnivariateVerifierParam<E>: 'a,

    ","Valid","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> Eq for UnivariateVerifierParam<E>
    where\n E: Eq + Pairing,\n <E as Pairing>::G1Affine: Eq,\n <E as Pairing>::G2Affine: Eq,

    ","Eq","jf_plonk::proof_system::structs::OpenKey"],["
    source§

    impl<E> StructuralPartialEq for UnivariateVerifierParam<E>
    where\n E: Pairing,

    ","StructuralPartialEq","jf_plonk::proof_system::structs::OpenKey"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file diff --git a/type.impl/jf_vid/advz/struct.AdvzInternal.js b/type.impl/jf_vid/advz/struct.AdvzInternal.js index e16c9ed6b..551f840fd 100644 --- a/type.impl/jf_vid/advz/struct.AdvzInternal.js +++ b/type.impl/jf_vid/advz/struct.AdvzInternal.js @@ -1,3 +1,3 @@ (function() {var type_impls = { -"jf_vid":[["
    source§

    impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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
    ","Clone","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_vid::advz::Advz"],["
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> 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","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Evaluation>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Proof>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type PrecomputeData = PrecomputeData<E>

    Precomputed data that can be (re-)used during disperse computation
    source§

    fn commit_only_precompute<B>(\n &self,\n payload: B,\n) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that\ncan be used as input to disperse_precompute for faster dispersal.
    source§

    fn disperse_precompute<B>(\n &self,\n payload: B,\n data: &Self::PrecomputeData,\n) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional\ndata for more efficient computation and faster disersal.
    ","Precomputable","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where\n B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share(\n &self,\n share: &Self::Share,\n common: &Self::Common,\n commit: &Self::Commit,\n) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client.\nWhy is return type a nested Result? See https://sled.rs/errors\nReturns: Read more
    source§

    fn recover_payload(\n &self,\n shares: &[Self::Share],\n common: &Self::Common,\n) -> VidResult<Vec<u8>>

    Recover payload from shares.\nDo not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a\nVidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    ","VidScheme","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,

    ","Eq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,

    ","StructuralPartialEq","jf_vid::advz::Advz"]] +"jf_vid":[["
    source§

    impl<E, H: Clone, T> Clone for AdvzInternal<E, H, T>
    where\n E: Pairing + Clone,\n T: Sync + Clone,

    source§

    fn clone(&self) -> AdvzInternal<E, H, T>

    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
    ","Clone","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Debug, T> Debug for AdvzInternal<E, H, T>
    where\n E: Pairing + Debug,\n T: Sync + Debug,

    source§

    fn fmt(&self, f: &mut Formatter<'_>) -> Result

    Formats the value using the given formatter. Read more
    ","Debug","jf_vid::advz::Advz"],["
    source§

    impl<E, H: PartialEq, T> PartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing + PartialEq,\n T: Sync + PartialEq,

    source§

    fn eq(&self, other: &AdvzInternal<E, H, T>) -> 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","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &LargeRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Evaluation>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Evaluation>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> PayloadProver<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>> for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    source§

    fn payload_proof<B>(\n &self,\n payload: B,\n range: Range<usize>,\n) -> VidResult<SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>>
    where\n B: AsRef<[u8]>,

    Compute a proof for a subslice of payload data. Read more
    source§

    fn payload_verify(\n &self,\n stmt: Statement<'_, Self>,\n proof: &SmallRangeProof<<UnivariateKzgPCS<E> as PolynomialCommitmentScheme>::Proof>,\n) -> VidResult<Result<(), ()>>

    Verify a proof made by PayloadProver::payload_proof. Read more
    ","PayloadProver as PolynomialCommitmentScheme>::Proof>>","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> Precomputable for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type PrecomputeData = PrecomputeData<E>

    Precomputed data that can be (re-)used during disperse computation
    source§

    fn commit_only_precompute<B>(\n &self,\n payload: B,\n) -> VidResult<(Self::Commit, Self::PrecomputeData)>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::commit_only but returns additional data that\ncan be used as input to disperse_precompute for faster dispersal.
    source§

    fn disperse_precompute<B>(\n &self,\n payload: B,\n data: &Self::PrecomputeData,\n) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Similar to VidScheme::disperse but takes as input additional\ndata for more efficient computation and faster disersal.
    ","Precomputable","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> VidScheme for AdvzInternal<E, H, T>
    where\n E: Pairing,\n H: HasherDigest,\n T: Sync,\n AdvzInternal<E, H, T>: MaybeGPU<E>,

    §

    type Commit = HasherNode<H>

    Payload commitment.
    §

    type Share = Share<E, H>

    Share-specific data sent to a storage node.
    §

    type Common = Common<E, H>

    Common data sent to all storage nodes.
    source§

    fn commit_only<B>(&mut self, payload: B) -> VidResult<Self::Commit>
    where\n B: AsRef<[u8]>,

    Compute a payload commitment
    source§

    fn disperse<B>(&mut self, payload: B) -> VidResult<VidDisperse<Self>>
    where\n B: AsRef<[u8]>,

    Compute shares to send to the storage nodes
    source§

    fn verify_share(\n &self,\n share: &Self::Share,\n common: &Self::Common,\n commit: &Self::Commit,\n) -> VidResult<Result<(), ()>>

    Verify a share. Used by both storage node and retrieval client.\nWhy is return type a nested Result? See https://sled.rs/errors\nReturns: Read more
    source§

    fn recover_payload(\n &self,\n shares: &[Self::Share],\n common: &Self::Common,\n) -> VidResult<Vec<u8>>

    Recover payload from shares.\nDo not verify shares or check recovered payload against anything.
    source§

    fn is_consistent(commit: &Self::Commit, common: &Self::Common) -> VidResult<()>

    Check that a VidScheme::Common is consistent with a\nVidScheme::Commit. Read more
    source§

    fn get_payload_byte_len(common: &Self::Common) -> u32

    Extract the payload byte length data from a VidScheme::Common.
    source§

    fn get_num_storage_nodes(common: &Self::Common) -> u32

    Extract the number of storage nodes from a VidScheme::Common.
    source§

    fn get_multiplicity(common: &Self::Common) -> u32

    Extract the number of poly evals per share VidScheme::Common.
    ","VidScheme","jf_vid::advz::Advz"],["
    source§

    impl<E, H: Eq, T> Eq for AdvzInternal<E, H, T>
    where\n E: Pairing + Eq,\n T: Sync + Eq,

    ","Eq","jf_vid::advz::Advz"],["
    source§

    impl<E, H, T> StructuralPartialEq for AdvzInternal<E, H, T>
    where\n E: Pairing,\n T: Sync,

    ","StructuralPartialEq","jf_vid::advz::Advz"]] };if (window.register_type_impls) {window.register_type_impls(type_impls);} else {window.pending_type_impls = type_impls;}})() \ No newline at end of file