pub struct FeePolynomial<Balance> { /* private fields */ }
Expand description

A list of coefficients that represent a polynomial.

Can be evaluated at a specific u64 to get the fee. The evaluations happens by summing up all term results. The order of the coefficients matters since it uses saturating arithmetic. This struct does therefore not model a polynomial in the mathematical sense (polynomial ring).

For visualization purposes, the formulas of the unsigned terms look like:

(c[0].frac * x^(c[0].degree) + c[0].integer * x^(c[0].degree))
(c[1].frac * x^(c[1].degree) + c[1].integer * x^(c[1].degree))
...

Depending on the value of c[i].negative, each term is added or subtracted from the result. The result is initialized as zero.

Implementations§

source§

impl<Balance> FeePolynomial<Balance>where Balance: BaseArithmetic + From<u32> + Copy + Unsigned,

source

pub fn eval(&self, x: u64) -> Balance

Evaluate the polynomial at a specific x.

Trait Implementations§

source§

impl<Balance> From<SmallVec<[WeightToFeeCoefficient<Balance>; 4]>> for FeePolynomial<Balance>

source§

fn from(coefficients: WeightToFeeCoefficients<Balance>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<Balance> RefUnwindSafe for FeePolynomial<Balance>where Balance: RefUnwindSafe,

§

impl<Balance> Send for FeePolynomial<Balance>where Balance: Send,

§

impl<Balance> Sync for FeePolynomial<Balance>where Balance: Sync,

§

impl<Balance> Unpin for FeePolynomial<Balance>where Balance: Unpin,

§

impl<Balance> UnwindSafe for FeePolynomial<Balance>where Balance: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

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

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

source§

fn into(self) -> U

Calls U::from(self).

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

source§

impl<T, Outer> IsWrappedBy<Outer> for Twhere Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

source§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

source§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatedConversion for T

source§

fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
source§

fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
source§

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

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.
source§

impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
source§

impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,

source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for Twhere 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
source§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeRefUnwindSafe for Twhere T: RefUnwindSafe,