Function get_exchange_rate

Source
pub fn get_exchange_rate(
    from_currency: Ustr,
    to_currency: Ustr,
    price_type: PriceType,
    quotes_bid: HashMap<String, f64>,
    quotes_ask: HashMap<String, f64>,
) -> Result<Option<f64>>
Expand description

Calculates the exchange rate between two currencies using provided bid and ask quotes.

This function builds a graph of direct conversion rates from the quotes and uses a DFS to accumulate the conversion rate along a valid conversion path. While a full Floyd–Warshall algorithm could compute all-pairs conversion rates, the DFS approach here provides a quick solution for a single conversion query.

§Errors

This function returns an error if:

  • price_type is equal to Last or Mark (cannot calculate from quotes).
  • quotes_bid or quotes_ask is empty.
  • quotes_bid and quotes_ask lengths are not equal.
  • The bid or ask side of a pair is missing.