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 toLast
orMark
(cannot calculate from quotes).quotes_bid
orquotes_ask
is empty.quotes_bid
andquotes_ask
lengths are not equal.- The bid or ask side of a pair is missing.