Skip to main content

Felt

Struct Felt 

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

A Felt backed by Plonky3’s Goldilocks field element.

Implementations§

§

impl Felt

pub const ORDER: u64 = <Goldilocks as PrimeField64>::ORDER_U64

Order of the field.

pub const ZERO: Felt

pub const ONE: Felt

pub const NUM_BYTES: usize = Goldilocks::NUM_BYTES

The number of bytes which this field element occupies in memory.

pub const fn new(value: u64) -> Felt

Creates a new field element from any u64.

Any u64 value is accepted. No reduction is performed since Goldilocks uses a non-canonical internal representation.

pub fn from_u8(value: u8) -> Felt

pub fn from_u16(value: u16) -> Felt

pub fn from_u32(value: u32) -> Felt

pub fn double(&self) -> Felt

The elementary function double(a) = 2*a.

pub fn square(&self) -> Felt

The elementary function square(a) = a^2.

pub fn exp_u64(&self, power: u64) -> Felt

Exponentiation by a u64 power.

pub fn exp_const_u64<const POWER: u64>(&self) -> Felt

Exponentiation by a small constant power.

pub fn as_canonical_u64(&self) -> u64

Return the representative of element in canonical form which lies in the range 0 <= x < ORDER.

pub fn as_canonical_u64_ct(&self) -> u64

Constant-time equivalent of as_canonical_u64() using the same reduction logic as Plonky3’s Goldilocks implementation.

Methods from Deref<Target = Goldilocks>§

pub const TWO_ADIC_GENERATORS: [Goldilocks; 33]

Trait Implementations§

§

impl Add for Felt

§

type Output = Felt

The resulting type after applying the + operator.
§

fn add(self, other: Felt) -> Felt

Performs the + operation. Read more
§

impl AddAssign for Felt

§

fn add_assign(&mut self, other: Felt)

Performs the += operation. Read more
§

impl BinomiallyExtendable<2> for Felt

§

const W: Felt

The constant coefficient W in the binomial X^D - W.
§

const DTH_ROOT: Felt

A D-th root of unity derived from W. Read more
§

const EXT_GENERATOR: [Felt; 2]

A generator for the extension field, expressed as a degree-D polynomial. Read more
§

impl BinomiallyExtendable<5> for Felt

§

const W: Felt

The constant coefficient W in the binomial X^D - W.
§

const DTH_ROOT: Felt

A D-th root of unity derived from W. Read more
§

const EXT_GENERATOR: [Felt; 5]

A generator for the extension field, expressed as a degree-D polynomial. Read more
§

impl BinomiallyExtendableAlgebra<Felt, 2> for Felt

§

fn binomial_mul(a: &[Self; D], b: &[Self; D], res: &mut [Self; D], w: F)

Multiplication in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_add(a: &[Self; D], b: &[Self; D]) -> [Self; D]

Addition of elements in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_sub(a: &[Self; D], b: &[Self; D]) -> [Self; D]

Subtraction of elements in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_base_mul(lhs: [Self; D], rhs: Self) -> [Self; D]

§

impl BinomiallyExtendableAlgebra<Felt, 5> for Felt

§

fn binomial_mul(a: &[Self; D], b: &[Self; D], res: &mut [Self; D], w: F)

Multiplication in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_add(a: &[Self; D], b: &[Self; D]) -> [Self; D]

Addition of elements in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_sub(a: &[Self; D], b: &[Self; D]) -> [Self; D]

Subtraction of elements in the algebra extension ring A<X> / (X^D - W). Read more
§

fn binomial_base_mul(lhs: [Self; D], rhs: Self) -> [Self; D]

§

impl Clone for Felt

§

fn clone(&self) -> Felt

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for Felt

§

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

Formats the value using the given formatter. Read more
§

impl Default for Felt

§

fn default() -> Felt

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

impl Deref for Felt

§

type Target = Goldilocks

The resulting type after dereferencing.
§

fn deref(&self) -> &<Felt as Deref>::Target

Dereferences the value.
§

impl DerefMut for Felt

§

fn deref_mut(&mut self) -> &mut <Felt as Deref>::Target

Mutably dereferences the value.
§

impl Deserializable for Felt

§

fn read_from<R>(source: &mut R) -> Result<Felt, DeserializationError>
where R: ByteReader,

Reads a sequence of bytes from the provided source, attempts to deserialize these bytes into Self, and returns the result. Read more
§

fn min_serialized_size() -> usize

Returns the minimum serialized size for one instance of this type. Read more
§

fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>

Attempts to deserialize the provided bytes into Self and returns the result. Read more
§

fn read_from_bytes_with_budget( bytes: &[u8], budget: usize, ) -> Result<Self, DeserializationError>

Deserializes Self from bytes with a byte budget limit. Read more
§

impl<'de> Deserialize<'de> for Felt

§

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

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

impl Display for Felt

§

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

Formats the value using the given formatter. Read more
§

impl Div for Felt

§

type Output = Felt

The resulting type after applying the / operator.
§

fn div(self, other: Felt) -> Felt

Performs the / operation. Read more
§

impl DivAssign for Felt

§

fn div_assign(&mut self, other: Felt)

Performs the /= operation. Read more
§

impl Field for Felt

§

const GENERATOR: Felt

A generator of this field’s multiplicative group.
§

type Packing = Felt

§

fn is_zero(&self) -> bool

Check if the given field element is equal to the unique additive identity (ZERO).
§

fn try_inverse(&self) -> Option<Felt>

The multiplicative inverse of this field element, if it exists. Read more
§

fn order() -> BigUint

The number of elements in the field. Read more
§

fn is_one(&self) -> bool

Check if the given field element is equal to the unique multiplicative identity (ONE).
§

fn inverse(&self) -> Self

The multiplicative inverse of this field element. Read more
§

fn add_slices(slice_1: &mut [Self], slice_2: &[Self])

Add two slices of field elements together, returning the result in the first slice. Read more
§

fn bits() -> usize

The number of bits required to define an element of this field. Read more
§

impl From<ContextId> for Felt

§

fn from(context_id: ContextId) -> Felt

Converts to this type from the input type.
§

impl From<Felt> for Goldilocks

§

fn from(value: Felt) -> Goldilocks

Converts to this type from the input type.
§

impl From<Forest> for Felt

§

fn from(value: Forest) -> Felt

Converts to this type from the input type.
§

impl From<Goldilocks> for Felt

§

fn from(value: Goldilocks) -> Felt

Converts to this type from the input type.
§

impl From<RowIndex> for Felt

§

fn from(step: RowIndex) -> Felt

Converts to this type from the input type.
§

impl From<u16> for Felt

§

fn from(int: u16) -> Felt

Converts to this type from the input type.
§

impl From<u32> for Felt

§

fn from(int: u32) -> Felt

Converts to this type from the input type.
§

impl From<u8> for Felt

§

fn from(int: u8) -> Felt

Converts to this type from the input type.
§

impl HasTwoAdicBinomialExtension<2> for Felt

§

const EXT_TWO_ADICITY: usize

Two-adicity of the multiplicative group of the extension field. Read more
§

fn ext_two_adic_generator(bits: usize) -> [Felt; 2]

Returns a two-adic generator for the extension field. Read more
§

impl HasTwoAdicBinomialExtension<5> for Felt

§

const EXT_TWO_ADICITY: usize

Two-adicity of the multiplicative group of the extension field. Read more
§

fn ext_two_adic_generator(bits: usize) -> [Felt; 5]

Returns a two-adic generator for the extension field. Read more
§

impl Hash for Felt

§

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
§

impl InjectiveMonomial<7> for Felt

§

fn injective_exp_n(&self) -> Self

Compute x -> x^n for a given n > 1 such that this map is injective.
§

impl Mul for Felt

§

type Output = Felt

The resulting type after applying the * operator.
§

fn mul(self, other: Felt) -> Felt

Performs the * operation. Read more
§

impl MulAssign for Felt

§

fn mul_assign(&mut self, other: Felt)

Performs the *= operation. Read more
§

impl Neg for Felt

§

type Output = Felt

The resulting type after applying the - operator.
§

fn neg(self) -> Felt

Performs the unary - operation. Read more
§

impl Ord for Felt

§

fn cmp(&self, other: &Felt) -> 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,

Restrict a value to a certain interval. Read more
§

impl PartialEq<Goldilocks> for Felt

§

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

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

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialEq for Felt

§

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

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

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl PartialOrd for Felt

§

fn partial_cmp(&self, other: &Felt) -> 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

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

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

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
§

impl PermutationMonomial<7> for Felt

§

fn injective_exp_root_n(&self) -> Felt

Compute x -> x^K for a given K > 1 such that x^{NK} = x for all elements x.
§

impl PrimeCharacteristicRing for Felt

§

const ZERO: Felt

The additive identity of the ring. Read more
§

const ONE: Felt

The multiplicative identity of the ring. Read more
§

const TWO: Felt

The element in the ring given by ONE + ONE. Read more
§

const NEG_ONE: Felt

The element in the ring given by -ONE. Read more
§

type PrimeSubfield = Goldilocks

The field ℤ/p where the characteristic of this ring is p.
§

fn from_prime_subfield( f: <Felt as PrimeCharacteristicRing>::PrimeSubfield, ) -> Felt

Embed an element of the prime field ℤ/p into the ring R. Read more
§

fn from_bool(value: bool) -> Felt

Return Self::ONE if b is true and Self::ZERO if b is false.
§

fn halve(&self) -> Felt

The elementary function halve(a) = a/2. Read more
§

fn mul_2exp_u64(&self, exp: u64) -> Felt

The elementary function mul_2exp_u64(a, exp) = a * 2^{exp}. Read more
§

fn div_2exp_u64(&self, exp: u64) -> Felt

Divide by a given power of two. div_2exp_u64(a, exp) = a/2^exp Read more
§

fn exp_u64(&self, power: u64) -> Felt

Exponentiation by a u64 power. Read more
§

fn from_u8(int: u8) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_u16(int: u16) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_u32(int: u32) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_u64(int: u64) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_u128(int: u128) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_usize(int: usize) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_i8(int: i8) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_i16(int: i16) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_i32(int: i32) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_i64(int: i64) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_i128(int: i128) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn from_isize(int: isize) -> Self

Given an integer r, return the sum of r copies of ONE: Read more
§

fn double(&self) -> Self

The elementary function double(a) = 2*a. Read more
§

fn square(&self) -> Self

The elementary function square(a) = a^2. Read more
§

fn cube(&self) -> Self

The elementary function cube(a) = a^3. Read more
§

fn xor(&self, y: &Self) -> Self

Computes the arithmetic generalization of boolean xor. Read more
§

fn xor3(&self, y: &Self, z: &Self) -> Self

Computes the arithmetic generalization of a triple xor. Read more
§

fn andn(&self, y: &Self) -> Self

Computes the arithmetic generalization of andnot. Read more
§

fn bool_check(&self) -> Self

The vanishing polynomial for boolean values: x * (x - 1). Read more
§

fn exp_const_u64<const POWER: u64>(&self) -> Self

Exponentiation by a small constant power. Read more
§

fn exp_power_of_2(&self, power_log: usize) -> Self

The elementary function exp_power_of_2(a, power_log) = a^{2^power_log}. Read more
§

fn powers(&self) -> Powers<Self>

Construct an iterator which returns powers of self: self^0, self^1, self^2, ....
§

fn shifted_powers(&self, start: Self) -> Powers<Self>

Construct an iterator which returns powers of self shifted by start: start, start*self^1, start*self^2, ....
§

fn dot_product<const N: usize>(u: &[Self; N], v: &[Self; N]) -> Self

Compute the dot product of two vectors.
§

fn sum_array<const N: usize>(input: &[Self]) -> Self

Compute the sum of a slice of elements whose length is a compile time constant. Read more
§

fn zero_vec(len: usize) -> Vec<Self>

Allocates a vector of zero elements of length len. Many operating systems zero pages before assigning them to a userspace process. In that case, our process should not need to write zeros, which would be redundant. However, the compiler may not always recognize this. Read more
§

impl PrimeField for Felt

§

fn as_canonical_biguint(&self) -> BigUint

Return the representative of value in canonical form which lies in the range 0 <= x < self.order().
§

impl PrimeField64 for Felt

§

const ORDER_U64: u64 = <Goldilocks as PrimeField64>::ORDER_U64

§

fn as_canonical_u64(&self) -> u64

Return the representative of value in canonical form which lies in the range 0 <= x < ORDER_U64.
§

fn to_unique_u64(&self) -> u64

Convert a field element to a u64 such that any two field elements are converted to the same u64 if and only if they represent the same value. Read more
§

impl<'a> Product<&'a Felt> for Felt

§

fn product<I>(iter: I) -> Felt
where I: Iterator<Item = &'a Felt>,

Takes an iterator and generates Self from the elements by multiplying the items.
§

impl Product for Felt

§

fn product<I>(iter: I) -> Felt
where I: Iterator<Item = Felt>,

Takes an iterator and generates Self from the elements by multiplying the items.
§

impl QuotientMap<i128> for Felt

§

fn from_int(int: i128) -> Felt

Convert a given i128 integer into an element of the Felt field.

This checks the sign and then makes use of the equivalent method for unsigned integers. This should be avoided in performance critical locations.

§

fn from_canonical_checked(int: i128) -> Option<Felt>

Convert a given u128 integer into an element of the Felt field.

Returns None if the input does not lie in the range:[-(2^63 - 2^31), 2^63 - 2^31].

§

unsafe fn from_canonical_unchecked(int: i128) -> Felt

Convert a given u128 integer into an element of the Felt field.

§Safety

The input must lie in the range:[1 + 2^32 - 2^64, 2^64 - 1].

§

impl QuotientMap<i16> for Felt

§

fn from_int(int: i16) -> Felt

Convert a given i16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: i16) -> Option<Felt>

Convert a given i16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: i16) -> Felt

Convert a given i16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl QuotientMap<i32> for Felt

§

fn from_int(int: i32) -> Felt

Convert a given i32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: i32) -> Option<Felt>

Convert a given i32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: i32) -> Felt

Convert a given i32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl QuotientMap<i64> for Felt

§

fn from_int(int: i64) -> Felt

Convert a given integer into an element of the field ℤ/p. Read more
§

fn from_canonical_checked(int: i64) -> Option<Felt>

Convert a given integer into an element of the field ℤ/p. The input is checked to ensure it lies within a given range. Read more
§

unsafe fn from_canonical_unchecked(int: i64) -> Felt

Convert a given integer into an element of the field ℤ/p. The input is guaranteed to lie within a specific range depending on p. If the input lies outside of this range, the output is undefined. Read more
§

impl QuotientMap<i8> for Felt

§

fn from_int(int: i8) -> Felt

Convert a given i8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: i8) -> Option<Felt>

Convert a given i8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: i8) -> Felt

Convert a given i8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl QuotientMap<u128> for Felt

§

fn from_int(int: u128) -> Felt

Convert a given u128 integer into an element of the Felt field.

Uses a modular reduction to reduce to canonical form. This should be avoided in performance critical locations.

§

fn from_canonical_checked(int: u128) -> Option<Felt>

Convert a given u128 integer into an element of the Felt field.

Returns None if the input does not lie in the range:[0, 2^64 - 2^32].

§

unsafe fn from_canonical_unchecked(int: u128) -> Felt

Convert a given u128 integer into an element of the Felt field.

§Safety

The input must lie in the range:[0, 2^64 - 1].

§

impl QuotientMap<u16> for Felt

§

fn from_int(int: u16) -> Felt

Convert a given u16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: u16) -> Option<Felt>

Convert a given u16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: u16) -> Felt

Convert a given u16 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl QuotientMap<u32> for Felt

§

fn from_int(int: u32) -> Felt

Convert a given u32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: u32) -> Option<Felt>

Convert a given u32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: u32) -> Felt

Convert a given u32 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl QuotientMap<u64> for Felt

§

fn from_int(int: u64) -> Felt

Convert a given integer into an element of the field ℤ/p. Read more
§

fn from_canonical_checked(int: u64) -> Option<Felt>

Convert a given integer into an element of the field ℤ/p. The input is checked to ensure it lies within a given range. Read more
§

unsafe fn from_canonical_unchecked(int: u64) -> Felt

Convert a given integer into an element of the field ℤ/p. The input is guaranteed to lie within a specific range depending on p. If the input lies outside of this range, the output is undefined. Read more
§

impl QuotientMap<u8> for Felt

§

fn from_int(int: u8) -> Felt

Convert a given u8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

fn from_canonical_checked(int: u8) -> Option<Felt>

Convert a given u8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

unsafe fn from_canonical_unchecked(int: u8) -> Felt

Convert a given u8 integer into an element of the Felt field.

Due to the integer type, the input value is always canonical.

§

impl Randomizable for Felt

§

const VALUE_SIZE: usize = 8

Size of Self in bytes. Read more
§

fn from_random_bytes(source: &[u8]) -> Option<Felt>

Returns Self if the set of bytes forms a valid value, otherwise returns None.
§

impl RawDataSerializable for Felt

§

const NUM_BYTES: usize = 8

The number of bytes which this field element occupies in memory. Must be equal to the length of self.into_bytes().
§

fn into_bytes(self) -> [u8; 8]

Convert a field element into a collection of bytes.
§

fn into_u32_stream( input: impl IntoIterator<Item = Felt>, ) -> impl IntoIterator<Item = u32>

Convert an iterator of field elements into an iterator of u32s. Read more
§

fn into_u64_stream( input: impl IntoIterator<Item = Felt>, ) -> impl IntoIterator<Item = u64>

Convert an iterator of field elements into an iterator of u64s. Read more
§

fn into_parallel_byte_streams<const N: usize>( input: impl IntoIterator<Item = [Felt; N]>, ) -> impl IntoIterator<Item = [u8; N]>

Convert an iterator of field element arrays into an iterator of byte arrays. Read more
§

fn into_parallel_u32_streams<const N: usize>( input: impl IntoIterator<Item = [Felt; N]>, ) -> impl IntoIterator<Item = [u32; N]>

Convert an iterator of field element arrays into an iterator of u32 arrays. Read more
§

fn into_parallel_u64_streams<const N: usize>( input: impl IntoIterator<Item = [Felt; N]>, ) -> impl IntoIterator<Item = [u64; N]>

Convert an iterator of field element arrays into an iterator of u64 arrays. Read more
§

fn into_byte_stream( input: impl IntoIterator<Item = Self>, ) -> impl IntoIterator<Item = u8>

Convert an iterator of field elements into an iterator of bytes.
§

impl Serializable for Felt

§

fn write_into<W>(&self, target: &mut W)
where W: ByteWriter,

Serializes self into bytes and writes these bytes into the target.
§

fn get_size_hint(&self) -> usize

Returns an estimate of how many bytes are needed to represent self. Read more
§

fn to_bytes(&self) -> Vec<u8>

Serializes self into a vector of bytes.
§

impl Serialize for Felt

§

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

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

impl Sub for Felt

§

type Output = Felt

The resulting type after applying the - operator.
§

fn sub(self, other: Felt) -> Felt

Performs the - operation. Read more
§

impl SubAssign for Felt

§

fn sub_assign(&mut self, other: Felt)

Performs the -= operation. Read more
§

impl<'a> Sum<&'a Felt> for Felt

§

fn sum<I>(iter: I) -> Felt
where I: Iterator<Item = &'a Felt>,

Takes an iterator and generates Self from the elements by “summing up” the items.
§

impl Sum for Felt

§

fn sum<I>(iter: I) -> Felt
where I: Iterator<Item = Felt>,

Takes an iterator and generates Self from the elements by “summing up” the items.
§

impl TryFrom<u64> for Felt

§

type Error = FeltFromIntError

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

fn try_from(int: u64) -> Result<Felt, <Felt as TryFrom<u64>>::Error>

Performs the conversion.
§

impl TwoAdicField for Felt

§

const TWO_ADICITY: usize = <Goldilocks as TwoAdicField>::TWO_ADICITY

The number of factors of two in this field’s multiplicative group.
§

fn two_adic_generator(bits: usize) -> Felt

Returns a generator of the multiplicative group of order 2^bits. Assumes bits <= TWO_ADICITY, otherwise the result is undefined.
§

impl UniformSamplingField for Felt

§

const MAX_SINGLE_SAMPLE_BITS: usize = <Goldilocks as UniformSamplingField>::MAX_SINGLE_SAMPLE_BITS

Maximum number of bits we can sample at negligible (~1/field prime) probability of triggering an error / requiring a resample.
§

const SAMPLING_BITS_M: [u64; 64] = <Goldilocks as UniformSamplingField>::SAMPLING_BITS_M

An array storing the largest value m_k for each k in [0, 31], such that m_k is a multiple of 2^k and less than P. m_k is defined as: Read more
§

impl Copy for Felt

§

impl Eq for Felt

§

impl Packable for Felt

Auto Trait Implementations§

§

impl Freeze for Felt

§

impl RefUnwindSafe for Felt

§

impl Send for Felt

§

impl Sync for Felt

§

impl Unpin for Felt

§

impl UnsafeUnpin for Felt

§

impl UnwindSafe for Felt

Blanket Implementations§

§

impl<R> Algebra<R> for R

§

fn mixed_dot_product<const N: usize>(a: &[Self; N], f: &[F; N]) -> Self
where F: Clone,

Dot product between algebra elements and base field scalars. Read more
Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<F> BasedVectorSpace<F> for F

§

const DIMENSION: usize = 1

The dimension of the vector space, i.e. the number of elements in its basis.
§

fn as_basis_coefficients_slice(&self) -> &[F]

Fixes a basis for the algebra A and uses this to map an element of A to a slice of DIMENSION F elements. Read more
§

fn from_basis_coefficients_fn<Fn>(f: Fn) -> F
where Fn: FnMut(usize) -> F,

Fixes a basis for the algebra A and uses this to map DIMENSION F elements to an element of A. Similar to core:array::from_fn, the DIMENSION F elements are given by Fn(0), ..., Fn(DIMENSION - 1) called in that order. Read more
§

fn from_basis_coefficients_iter<I>(iter: I) -> Option<F>
where I: ExactSizeIterator<Item = F>,

Fixes a basis for the algebra A and uses this to map DIMENSION F elements to an element of A. Read more
§

fn flatten_to_base(vec: Vec<F>) -> Vec<F>

Convert from a vector of Self to a vector of F by flattening the basis coefficients. Read more
§

fn reconstitute_from_base(vec: Vec<F>) -> Vec<F>

Convert from a vector of F to a vector of Self by combining the basis coefficients. Read more
§

fn from_basis_coefficients_slice(slice: &[F]) -> Option<Self>

Fixes a basis for the algebra A and uses this to map DIMENSION F elements to an element of A. Read more
§

fn ith_basis_element(i: usize) -> Option<Self>

Given a basis for the Algebra A, return the i’th basis element. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

unsafe fn clone_to_uninit(&self, dest: *mut u8)

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

impl<F> ExtensionField<F> for F
where F: Field,

§

type ExtensionPacking = <F as Field>::Packing

§

fn is_in_basefield(&self) -> bool

Determine if the given element lies in the base field.
§

fn as_base(&self) -> Option<F>

If the element lies in the base field project it down. Otherwise return None.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for 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> 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> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either [OwoColorize::fg] or a color-specific method, such as [OwoColorize::green], Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either [OwoColorize::bg] or a color-specific method, such as [OwoColorize::on_yellow], Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
§

impl<F> PackedField for F
where F: Field,

§

type Scalar = F

§

fn packed_powers(base: Self::Scalar) -> Powers<Self>

Construct an iterator which returns powers of base packed into packed field elements. Read more
§

fn packed_shifted_powers( base: Self::Scalar, start: Self::Scalar, ) -> Powers<Self>

Construct an iterator which returns powers of base multiplied by start and packed into packed field elements. Read more
§

fn packed_linear_combination<const N: usize>( coeffs: &[Self::Scalar], vecs: &[Self], ) -> Self

Compute a linear combination of a slice of base field elements and a slice of packed field elements. The slices must have equal length and it must be a compile time constant. Read more
§

impl<F> PackedFieldPow2 for F
where F: Field,

§

fn interleave(&self, other: F, block_len: usize) -> (F, F)

Take interpret two vectors as chunks of block_len elements. Unpack and interleave those chunks. This is best seen with an example. If we have: Read more
§

impl<T> PackedValue for T
where T: Packable,

§

const WIDTH: usize = 1

Number of scalar values packed together.
§

type Value = T

The scalar type that is packed into this value.
§

fn from_slice(slice: &[<T as PackedValue>::Value]) -> &T

Interprets a slice of scalar values as a packed value reference. Read more
§

fn from_slice_mut(slice: &mut [<T as PackedValue>::Value]) -> &mut T

Interprets a mutable slice of scalar values as a mutable packed value. Read more
§

fn from_fn<Fn>(f: Fn) -> T
where Fn: FnMut(usize) -> <T as PackedValue>::Value,

Constructs a packed value using a function to generate each element. Read more
§

fn as_slice(&self) -> &[<T as PackedValue>::Value]

Returns the underlying scalar values as an immutable slice.
§

fn as_slice_mut(&mut self) -> &mut [<T as PackedValue>::Value]

Returns the underlying scalar values as a mutable slice.
§

fn pack_slice(buf: &[Self::Value]) -> &[Self]

Packs a slice of scalar values into a slice of packed values. Read more
§

fn pack_slice_with_suffix(buf: &[Self::Value]) -> (&[Self], &[Self::Value])

Packs a slice into packed values and returns the packed portion and any remaining suffix.
§

fn pack_slice_mut(buf: &mut [Self::Value]) -> &mut [Self]

Converts a mutable slice of scalar values into a mutable slice of packed values. Read more
§

fn pack_maybe_uninit_slice_mut( buf: &mut [MaybeUninit<Self::Value>], ) -> &mut [MaybeUninit<Self>]

Converts a mutable slice of possibly uninitialized scalar values into a mutable slice of possibly uninitialized packed values. Read more
§

fn pack_slice_with_suffix_mut( buf: &mut [Self::Value], ) -> (&mut [Self], &mut [Self::Value])

Converts a mutable slice of scalar values into a pair: Read more
§

fn pack_maybe_uninit_slice_with_suffix_mut( buf: &mut [MaybeUninit<Self::Value>], ) -> (&mut [MaybeUninit<Self>], &mut [MaybeUninit<Self::Value>])

Converts a mutable slice of possibly uninitialized scalar values into a pair: Read more
§

fn unpack_slice(buf: &[Self]) -> &[Self::Value]

Reinterprets a slice of packed values as a flat slice of scalar values. Read more
§

fn extract(&self, lane: usize) -> Self::Value

Extract the scalar value at the given SIMD lane. Read more
§

fn unpack_into<const N: usize>( packed: &[Self; N], rows: &mut [[Self::Value; N]], )

Unpack N packed values into WIDTH rows of N scalars. Read more
§

impl<T> PackedValueExt for T
where T: PackedValue,

§

fn pack_columns<const N: usize>(rows: &[[Self::Value; N]]) -> [Self; N]

Pack columns from WIDTH rows of scalar values. Read more
§

impl<T> Paint for T
where T: ?Sized,

§

fn fg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the foreground set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like red() and green(), which have the same functionality but are pithier.

§Example

Set foreground color to white using fg():

use yansi::{Paint, Color};

painted.fg(Color::White);

Set foreground color to white using white().

use yansi::Paint;

painted.white();
§

fn primary(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Primary].

§Example
println!("{}", value.primary());
§

fn fixed(&self, color: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Fixed].

§Example
println!("{}", value.fixed(color));
§

fn rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the fg() set to [Color :: Rgb].

§Example
println!("{}", value.rgb(r, g, b));
§

fn black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Black].

§Example
println!("{}", value.black());
§

fn red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Red].

§Example
println!("{}", value.red());
§

fn green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Green].

§Example
println!("{}", value.green());
§

fn yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Yellow].

§Example
println!("{}", value.yellow());
§

fn blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Blue].

§Example
println!("{}", value.blue());
§

fn magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Magenta].

§Example
println!("{}", value.magenta());
§

fn cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: Cyan].

§Example
println!("{}", value.cyan());
§

fn white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: White].

§Example
println!("{}", value.white());
§

fn bright_black(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlack].

§Example
println!("{}", value.bright_black());
§

fn bright_red(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightRed].

§Example
println!("{}", value.bright_red());
§

fn bright_green(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightGreen].

§Example
println!("{}", value.bright_green());
§

fn bright_yellow(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightYellow].

§Example
println!("{}", value.bright_yellow());
§

fn bright_blue(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightBlue].

§Example
println!("{}", value.bright_blue());
§

fn bright_magenta(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.bright_magenta());
§

fn bright_cyan(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightCyan].

§Example
println!("{}", value.bright_cyan());
§

fn bright_white(&self) -> Painted<&T>

Returns self with the fg() set to [Color :: BrightWhite].

§Example
println!("{}", value.bright_white());
§

fn bg(&self, value: Color) -> Painted<&T>

Returns a styled value derived from self with the background set to value.

This method should be used rarely. Instead, prefer to use color-specific builder methods like on_red() and on_green(), which have the same functionality but are pithier.

§Example

Set background color to red using fg():

use yansi::{Paint, Color};

painted.bg(Color::Red);

Set background color to red using on_red().

use yansi::Paint;

painted.on_red();
§

fn on_primary(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Primary].

§Example
println!("{}", value.on_primary());
§

fn on_fixed(&self, color: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Fixed].

§Example
println!("{}", value.on_fixed(color));
§

fn on_rgb(&self, r: u8, g: u8, b: u8) -> Painted<&T>

Returns self with the bg() set to [Color :: Rgb].

§Example
println!("{}", value.on_rgb(r, g, b));
§

fn on_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Black].

§Example
println!("{}", value.on_black());
§

fn on_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Red].

§Example
println!("{}", value.on_red());
§

fn on_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Green].

§Example
println!("{}", value.on_green());
§

fn on_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Yellow].

§Example
println!("{}", value.on_yellow());
§

fn on_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Blue].

§Example
println!("{}", value.on_blue());
§

fn on_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Magenta].

§Example
println!("{}", value.on_magenta());
§

fn on_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: Cyan].

§Example
println!("{}", value.on_cyan());
§

fn on_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: White].

§Example
println!("{}", value.on_white());
§

fn on_bright_black(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlack].

§Example
println!("{}", value.on_bright_black());
§

fn on_bright_red(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightRed].

§Example
println!("{}", value.on_bright_red());
§

fn on_bright_green(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightGreen].

§Example
println!("{}", value.on_bright_green());
§

fn on_bright_yellow(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightYellow].

§Example
println!("{}", value.on_bright_yellow());
§

fn on_bright_blue(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightBlue].

§Example
println!("{}", value.on_bright_blue());
§

fn on_bright_magenta(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightMagenta].

§Example
println!("{}", value.on_bright_magenta());
§

fn on_bright_cyan(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightCyan].

§Example
println!("{}", value.on_bright_cyan());
§

fn on_bright_white(&self) -> Painted<&T>

Returns self with the bg() set to [Color :: BrightWhite].

§Example
println!("{}", value.on_bright_white());
§

fn attr(&self, value: Attribute) -> Painted<&T>

Enables the styling [Attribute] value.

This method should be used rarely. Instead, prefer to use attribute-specific builder methods like bold() and underline(), which have the same functionality but are pithier.

§Example

Make text bold using attr():

use yansi::{Paint, Attribute};

painted.attr(Attribute::Bold);

Make text bold using using bold().

use yansi::Paint;

painted.bold();
§

fn bold(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Bold].

§Example
println!("{}", value.bold());
§

fn dim(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Dim].

§Example
println!("{}", value.dim());
§

fn italic(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Italic].

§Example
println!("{}", value.italic());
§

fn underline(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Underline].

§Example
println!("{}", value.underline());

Returns self with the attr() set to [Attribute :: Blink].

§Example
println!("{}", value.blink());

Returns self with the attr() set to [Attribute :: RapidBlink].

§Example
println!("{}", value.rapid_blink());
§

fn invert(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Invert].

§Example
println!("{}", value.invert());
§

fn conceal(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Conceal].

§Example
println!("{}", value.conceal());
§

fn strike(&self) -> Painted<&T>

Returns self with the attr() set to [Attribute :: Strike].

§Example
println!("{}", value.strike());
§

fn quirk(&self, value: Quirk) -> Painted<&T>

Enables the yansi [Quirk] value.

This method should be used rarely. Instead, prefer to use quirk-specific builder methods like mask() and wrap(), which have the same functionality but are pithier.

§Example

Enable wrapping using .quirk():

use yansi::{Paint, Quirk};

painted.quirk(Quirk::Wrap);

Enable wrapping using wrap().

use yansi::Paint;

painted.wrap();
§

fn mask(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Mask].

§Example
println!("{}", value.mask());
§

fn wrap(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Wrap].

§Example
println!("{}", value.wrap());
§

fn linger(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Linger].

§Example
println!("{}", value.linger());
§

fn clear(&self) -> Painted<&T>

👎Deprecated since 1.0.1:

renamed to resetting() due to conflicts with Vec::clear(). The clear() method will be removed in a future release.

Returns self with the quirk() set to [Quirk :: Clear].

§Example
println!("{}", value.clear());
§

fn resetting(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Resetting].

§Example
println!("{}", value.resetting());
§

fn bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: Bright].

§Example
println!("{}", value.bright());
§

fn on_bright(&self) -> Painted<&T>

Returns self with the quirk() set to [Quirk :: OnBright].

§Example
println!("{}", value.on_bright());
§

fn whenever(&self, value: Condition) -> Painted<&T>

Conditionally enable styling based on whether the [Condition] value applies. Replaces any previous condition.

See the crate level docs for more details.

§Example

Enable styling painted only when both stdout and stderr are TTYs:

use yansi::{Paint, Condition};

painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§

fn new(self) -> Painted<Self>
where Self: Sized,

Create a new [Painted] with a default [Style]. Read more
§

fn paint<S>(&self, style: S) -> Painted<&Self>
where S: Into<Style>,

Apply a style wholesale to self. Any previous style is replaced. 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
§

impl<F> QuotientMap<isize> for F
where F: QuotientMap<i8> + QuotientMap<i16> + QuotientMap<i32> + QuotientMap<i64> + QuotientMap<i128>,

§

fn from_int(int: isize) -> F

We use the from_int method of the primitive integer type identical to isize on this machine

§

fn from_canonical_checked(int: isize) -> Option<F>

We use the from_canonical_checked method of the primitive integer type identical to isize on this machine

§

unsafe fn from_canonical_unchecked(int: isize) -> F

We use the from_canonical_unchecked method of the primitive integer type identical to isize on this machine

§

impl<F> QuotientMap<usize> for F
where F: QuotientMap<u8> + QuotientMap<u16> + QuotientMap<u32> + QuotientMap<u64> + QuotientMap<u128>,

§

fn from_int(int: usize) -> F

We use the from_int method of the primitive integer type identical to usize on this machine

§

fn from_canonical_checked(int: usize) -> Option<F>

We use the from_canonical_checked method of the primitive integer type identical to usize on this machine

§

unsafe fn from_canonical_unchecked(int: usize) -> F

We use the from_canonical_unchecked method of the primitive integer type identical to usize on this machine

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read 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§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

§

impl<T> WithSubscriber for T

§

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

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ConvolutionElt for T
where T: AddAssign + Copy + Neg<Output = T> + Add<Output = T> + Sub<Output = T> + SubAssign,

§

impl<T> ConvolutionRhs for T
where T: Copy + Neg<Output = T> + Add<Output = T> + Sub<Output = T>,

Source§

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

§

impl<T, Rhs, Output> GroupOps<Rhs, Output> for T
where T: Add<Rhs, Output = Output> + Sub<Rhs, Output = Output> + AddAssign<Rhs> + SubAssign<Rhs>,

§

impl<T, Rhs, Output> ScalarMul<Rhs, Output> for T
where T: Mul<Rhs, Output = Output> + MulAssign<Rhs>,