stock-trek 0.2.10

Stock Trek time-series analysis
Documentation
use crate::dto::raw_market_tick::RawMarketTick;
use crate::market_data::market_quote::MarketQuote;
use crate::prelude::TimestampMillis;

#[derive(Debug)]
pub struct MarketTick {
    timestamp_millis: TimestampMillis,
    bid: MarketQuote,
    ask: MarketQuote,
    last: MarketQuote,
}

impl MarketTick {
    pub fn timestamp_millis(&self) -> TimestampMillis {
        self.timestamp_millis
    }
    pub fn bid(&self) -> &MarketQuote {
        &self.bid
    }
    pub fn ask(&self) -> &MarketQuote {
        &self.ask
    }
    pub fn last(&self) -> &MarketQuote {
        &self.last
    }
}

impl From<RawMarketTick> for MarketTick {
    fn from(value: RawMarketTick) -> Self {
        let RawMarketTick {
            timestamp_millis,
            bid,
            ask,
            last,
        } = value;
        MarketTick {
            timestamp_millis,
            bid: MarketQuote::from(bid),
            ask: MarketQuote::from(ask),
            last: MarketQuote::from(last),
        }
    }
}