pub struct AlertEvaluator { /* private fields */ }Expand description
Evaluates AlertRules against a price feed, tracking the per-symbol
history that crossing conditions need.
Exposed so consumers that already own a price stream (the server’s shared hub, for instance) can apply alerts without re-wrapping the stream.
Implementations§
Source§impl AlertEvaluator
impl AlertEvaluator
Sourcepub fn new(rules: impl IntoIterator<Item = AlertRule>) -> Self
pub fn new(rules: impl IntoIterator<Item = AlertRule>) -> Self
Build an evaluator from a rule set.
Sourcepub fn symbols(&self) -> Vec<String>
pub fn symbols(&self) -> Vec<String>
Distinct symbols referenced by the rule set, in first-seen order.
Sourcepub fn is_exhausted(&self) -> bool
pub fn is_exhausted(&self) -> bool
true once every rule has fired and none can fire again.
Sourcepub fn evaluate(&mut self, update: &PriceUpdate) -> Vec<AlertEvent>
pub fn evaluate(&mut self, update: &PriceUpdate) -> Vec<AlertEvent>
Feed one tick, returning the alerts it triggered.
Auto Trait Implementations§
impl Freeze for AlertEvaluator
impl RefUnwindSafe for AlertEvaluator
impl Send for AlertEvaluator
impl Sync for AlertEvaluator
impl Unpin for AlertEvaluator
impl UnsafeUnpin for AlertEvaluator
impl UnwindSafe for AlertEvaluator
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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