Struct ConstantCurve

Source
pub struct ConstantCurve { /* private fields */ }
Expand description

A representation of a flat demand curve supporting interval, half-line, and full-line trading domains

A constant curve represents a fixed price for trades within a specified rate interval. This can be used to express indifference to (potentially unbounded) trade rates at a specific price.

The sign convention follows flow trading standards:

  • min_rate ≤ 0 (non-positive): maximum selling rate
  • max_rate ≥ 0 (non-negative): maximum buying rate

Implementations§

Source§

impl ConstantCurve

Source

pub unsafe fn new_unchecked(min_rate: f64, max_rate: f64, price: f64) -> Self

Creates a new constant constraint without validation

§Safety

This function is unsafe because it bypasses validation of rates and price. It should only be used when the caller can guarantee the values are valid.

Source

pub fn new( min_rate: Option<f64>, max_rate: Option<f64>, price: f64, ) -> Result<Self, ConstantCurveError>

Creates a new constant curve with validation

Source

pub fn domain(&self) -> (f64, f64)

Return the domain of the demand curve (min and max rates)

Source

pub fn points(self) -> Vec<Point>

Returns the curve as a vector of points

For a constant curve, this returns one or two points:

  • If min_rate equals max_rate: returns a single point
  • Otherwise: returns two points at the min and max rates, both with the same price

Trait Implementations§

Source§

impl Clone for ConstantCurve

Source§

fn clone(&self) -> ConstantCurve

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ConstantCurve

Source§

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

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

impl From<ConstantCurve> for DemandCurve

Source§

fn from(value: ConstantCurve) -> Self

Converts to this type from the input type.
Source§

impl Into<ConstantCurveDto> for ConstantCurve

Source§

fn into(self) -> ConstantCurveDto

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

impl TryFrom<ConstantCurveDto> for ConstantCurve

Source§

type Error = ConstantCurveError

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

fn try_from(value: ConstantCurveDto) -> Result<Self, Self::Error>

Performs the conversion.

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§

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