pub enum CandlestickItem {
Confirmed(Candlestick),
Realtime(Candlestick),
HistoryEnd,
}Expand description
An item yielded by
DataProvider::candlesticks.
The three variants let the DataProvider signal the boundary between
historical (finite, synchronous) and realtime (potentially infinite,
asynchronous) data.
§Stream protocol
The expected sequence is:
Confirmed(t0) Confirmed(t1) … Confirmed(tN) ← historical closed bars
HistoryEnd ← boundary marker (once)
Realtime(tA) ← forming bar, first tick
Realtime(tA) ← same timestamp → update
Realtime(tB) (tB > tA) ← later timestamp:
VM auto-confirms tA,
then opens tB
…Do not emit Confirmed for a realtime bar that has just closed.
Send the next Realtime tick with a later timestamp instead; the VM
confirms the previous bar automatically.
§Examples
use openpine_vm::{Candlestick, CandlestickItem, TradeSession};
let bar = Candlestick::new(
1_700_000_000_000,
150.0,
155.0,
149.0,
153.0,
1_000_000.0,
0.0,
TradeSession::Regular,
);
// Historical (confirmed, closed) bar
let _ = CandlestickItem::Confirmed(bar);
// Realtime (forming) bar
let _ = CandlestickItem::Realtime(bar);
// Marks the end of historical data; realtime items follow
let _ = CandlestickItem::HistoryEnd;Variants§
Confirmed(Candlestick)
A confirmed (closed) historical bar.
Only used for historical bars. Do not emit Confirmed to signal
that a realtime bar has closed; send the next Realtime tick with a
later timestamp and the VM confirms the previous bar automatically.
Realtime(Candlestick)
The current forming (realtime) bar.
Consecutive yields with the same timestamp update the bar in place. A yield with a later timestamp implicitly confirms the previous bar and opens a new one.
HistoryEnd
Marks the boundary between historical and realtime data.
Emit exactly once, after all historical Confirmed bars and before the
first Realtime bar. After this item the VM switches from blocking to
non-blocking stream consumption so that a stalled or slow symbol never
freezes execution.
Trait Implementations§
Source§impl Clone for CandlestickItem
impl Clone for CandlestickItem
Source§fn clone(&self) -> CandlestickItem
fn clone(&self) -> CandlestickItem
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CandlestickItem
impl Debug for CandlestickItem
impl Copy for CandlestickItem
Auto Trait Implementations§
impl Freeze for CandlestickItem
impl RefUnwindSafe for CandlestickItem
impl Send for CandlestickItem
impl Sync for CandlestickItem
impl Unpin for CandlestickItem
impl UnwindSafe for CandlestickItem
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.